Function at 0x47a170
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, dword [esp + 0x38]
test esi, esi
push edi
mov dword [esp + 0x14], 0
jne 0x47a191
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
push edi
push ebx
call fcn.004823f0
add esp, 8
test eax, eax
je 0x47a1b1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
test byte [edi + 0x2a], 0x10
je 0x47a1c1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
cmp dword [esp + 0x40], 0x63
jne 0x47a1e5
cmp word [edi + 0x24], 0
jl 0x47a1dd
xor eax, eax
mov al, byte [edi + 0x2b]
cmp eax, 0x63
mov dword [esp + 0x40], eax
jne 0x47a1e5
mov dword [esp + 0x40], 2
mov eax, dword [esi + 0x28]
cmp word [eax], 1
je 0x47a1f8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x47a209
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x47a21a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x47a22b
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x47a23c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov ecx, dword [esi + 0x48]
test ecx, ecx
je 0x47a24d
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov ecx, dword [esi + 0x3c]
test ecx, ecx
je 0x47a25e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
test byte [esi + 6], 1
je 0x47a26e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov esi, dword [esi]
cmp dword [esi], 1
je 0x47a27f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
cmp byte [edx], 0x71
je 0x47a293
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
add eax, 8
push eax
push 0
push ebx
call fcn.00472a80
mov ebp, eax
add esp, 0xc
test ebp, ebp
mov dword [esp + 0x18], ebp
jne 0x47a2b4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
cmp ebp, edi
jne 0x47a2c2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
test byte [ebp + 0x2a], 0x10
je 0x47a2d2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x47a2e3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov ax, word [edi + 0x26]
cmp ax, word [ebp + 0x26]
je 0x47a2f7
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov cx, word [edi + 0x24]
cmp cx, word [ebp + 0x24]
je 0x47a30b
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
test ax, ax
mov dword [esp + 0x3c], 0
jle 0x47a383
xor esi, esi
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x38]
lea eax, [esi + edx]
mov edx, dword [ecx + 4]
mov cl, byte [edx + esi + 0x15]
lea edi, [edx + esi]
mov dl, byte [eax + 0x15]
cmp cl, dl
jne 0x47a187
mov edx, dword [eax + 0x10]
mov eax, dword [edi + 0x10]
push edx
push eax
call fcn.0047a760
add esp, 8
test eax, eax
je 0x47a187
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 4]
mov al, byte [edx + esi + 0x14]
test al, al
je 0x47a36f
mov eax, dword [ebp + 4]
mov dl, byte [esi + eax + 0x14]
test dl, dl
je 0x47a187
mov eax, dword [esp + 0x3c]
add esi, 0x18
movsx ecx, word [ecx + 0x26]
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jl 0x47a31a
mov edx, dword [esp + 0x38]
mov edi, dword [edx + 8]
test edi, edi
je 0x47a3d2
mov al, byte [edi + 0x2c]
test al, al
je 0x47a39d
mov dword [esp + 0x14], 1
mov esi, dword [ebp + 8]
test esi, esi
je 0x47a187
push esi
push edi
call fcn.0047a790
add esp, 8
test eax, eax
jne 0x47a3c3
mov esi, dword [esi + 0x14]
test esi, esi
je 0x47a187
jmp 0x47a3a8
test esi, esi
je 0x47a187
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x47a38e
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x47a3f8
mov ecx, dword [ebp + 0x18]
push eax
push ecx
call fcn.004722f0
add esp, 8
test eax, eax
je 0x47a3f8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
test ecx, 0x40000
je 0x47a41a
mov edx, dword [esp + 0x38]
mov esi, dword [edx + 0x10]
test esi, esi
je 0x47a41a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
test cl, 0x10
je 0x47a429
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x40]
push edx
push eax
call fcn.004667b0
mov edi, eax
push ebx
mov dword [esp + 0x28], edi
call fcn.0047d350
push edi
push ebx
mov esi, eax
call fcn.00475d40
mov edi, dword [ebx + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x58]
push ecx
lea ebp, [edi + 1]
push edx
push ebx
lea eax, [ebp + 1]
mov dword [ebx + 0x48], eax
call fcn.00479700
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
push 0x28
push eax
push ecx
push ebp
push ebx
call fcn.004784d0
mov edx, dword [esp + 0x6c]
add esp, 0x34
cmp word [edx + 0x24], 0
jge 0x47a496
mov eax, edx
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x47a4b6
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x47a4b6
mov eax, dword [esp + 0x40]
cmp eax, 2
je 0x47a4ac
cmp eax, 1
jne 0x47a4b6
mov dword [esp + 0x20], 0
jmp 0x47a4e3
push 0
push ebp
push 0x48
push esi
call fcn.0046cc70
push 0
push 0
push 1
push esi
mov dword [esp + 0x5c], eax
call fcn.0046cc70
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
push ecx
push esi
call fcn.0046cc90
add esp, 0x28
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push 0x27
push edx
push eax
push edi
push ebx
call fcn.004784d0
push 0
push edi
push 0x48
push esi
call fcn.0046cc70
push ebx
mov dword [esp + 0x54], eax
call fcn.0046ccb0
push ebx
mov dword [esp + 0x40], eax
call fcn.0046ccb0
mov ecx, dword [esp + 0x64]
add esp, 0x2c
mov dword [esp + 0x10], eax
cmp word [ecx + 0x24], 0
jl 0x47a57d
mov edx, eax
push edx
push edi
push 0x41
push esi
call fcn.0046cc70
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
push eax
push 0
push ebp
push 0x36
push esi
call fcn.0046c2d0
mov ecx, dword [esp + 0x64]
push 0xfffffffffffffffe
push str.PRIMARY_KEY_must_be_unique
push ecx
push ebx
mov dword [esp + 0x58], eax
call fcn.00475eb0
mov edx, dword [esp + 0x58]
push edx
push esi
call fcn.0046cc90
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x64]
push eax
push ecx
push ebx
call fcn.00479780
add esp, 0x48
jmp 0x47a5a7
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 8]
test eax, eax
jne 0x47a592
mov eax, dword [esp + 0x10]
push eax
push ebp
push 0x38
jmp 0x47a59a
mov ecx, dword [esp + 0x10]
push ecx
push edi
push 0x41
push esi
call fcn.0046cc70
add esp, 0x10
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x14]
push ebx
push edi
push 0x40
push esi
call fcn.0046cc70
mov edx, dword [esp + 0x20]
push edx
push ebx
push ebp
push 0x39
push esi
call fcn.0046c2d0
push 0xb
push esi
call fcn.0046d1a0
mov ebx, dword [esp + 0x64]
push 0
mov eax, dword [ebx]
push eax
push 0xffffffffffffffff
push esi
call fcn.00460550
mov ecx, dword [esp + 0x78]
push ecx
push edi
push 0x5f
push esi
call fcn.0046cc70
mov ebx, dword [ebx + 8]
add esp, 0x4c
test ebx, ebx
je 0x47a6e2
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
test eax, eax
mov dword [esp + 0x38], eax
je 0x47a629
mov eax, dword [esp + 0x38]
push eax
push ebx
call fcn.0047a790
add esp, 8
test eax, eax
jne 0x47a629
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x14]
test eax, eax
mov dword [esp + 0x38], eax
jne 0x47a608
push 0
push edi
push 0x2d
push esi
call fcn.0046cc70
push 0
push ebp
push 0x2d
push esi
call fcn.0046cc70
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
push edx
push eax
call fcn.00476150
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
push 0xfffffffffffffff0
push eax
mov eax, dword [edx + 0x28]
push ecx
push eax
push edi
push 0x27
push esi
call fcn.0046c290
mov ecx, dword [esp + 0x78]
add esp, 0x44
push ebx
push ecx
call fcn.00476150
mov edx, dword [esp + 0x4c]
push 0xfffffffffffffff0
push eax
mov eax, dword [ebx + 0x28]
push edx
push eax
push ebp
push 0x28
push esi
call fcn.0046c290
push 0
push edi
push 0x48
push esi
call fcn.0046cc70
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x70], eax
push ecx
push edi
push 0x3f
push esi
call fcn.0046cc70
mov edx, dword [esp + 0x58]
add esp, 0x44
push 1
push edx
push ebp
push 0x61
push esi
call fcn.0046c2d0
mov eax, dword [esp + 0x50]
inc eax
push eax
push edi
push 0x5f
push esi
call fcn.0046cc70
mov ecx, dword [esp + 0x60]
push ecx
push esi
call fcn.0046cc90
mov ebx, dword [ebx + 0x14]
add esp, 0x2c
test ebx, ebx
jne 0x47a5f9
mov edx, dword [esp + 0x2c]
push edx
push esi
call fcn.0046cc90
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
push eax
push ebx
call fcn.0046cce0
mov ecx, dword [esp + 0x24]
push ecx
push ebx
call fcn.0046cce0
push 0
push edi
push 0x2d
push esi
call fcn.0046cc70
push 0
push ebp
push 0x2d
push esi
call fcn.0046cc70
mov edi, dword [esp + 0x58]
add esp, 0x38
test edi, edi
je 0x47a753
push 0
push 0
push 6
push esi
call fcn.0046cc70
push edi
push esi
call fcn.0046cc90
push 0
push ebp
push 0x2d
push esi
call fcn.0046cc70
add esp, 0x28
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x20
ret