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

Disassembly:
sub esp, 0x1c
mov eax, dword [esp + 0x28]
push ebx
push ebp
push esi
xor esi, esi
push edi
cmp eax, esi
mov dword [esp + 0x10], esi
jne 0x51b87f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
mov ebx, dword [esp + 0x34]
cmp dword [ebx + 0x24], esi
je 0x51b892
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
test byte [ebx + 0x22], 0x10
je 0x51b8a2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x63
jne 0x51b8c6
mov dword [esp + 0x3c], 2
mov ecx, dword [eax + 8]
cmp word [ecx], 1
je 0x51b8da
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp ecx, 2
je 0x51b8b3
cmp ecx, 1
je 0x51b8b3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp dword [ecx + 0x18], esi
je 0x51b8e9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp dword [eax + 0xc], esi
je 0x51b8f8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp dword [eax + 0x18], esi
je 0x51b907
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp dword [eax + 0x10], esi
je 0x51b916
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp dword [eax + 0x28], esi
je 0x51b925
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp dword [eax + 0x1c], esi
je 0x51b934
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
test byte [eax + 6], 1
je 0x51b944
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
mov eax, dword [eax]
cmp dword [eax], 1
je 0x51b955
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
mov eax, dword [eax + 0xc]
mov edx, dword [eax]
cmp byte [edx], 0x70
je 0x51b969
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov edx, dword [esp + 0x30]
push eax
push ecx
push esi
push edx
call fcn.005077c0
mov ebp, eax
add esp, 0x10
cmp ebp, esi
mov dword [esp + 0x18], ebp
jne 0x51b993
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp ebp, ebx
jne 0x51b9a1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
test byte [ebp + 0x22], 0x10
je 0x51b9b1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp dword [ebp + 0x1c], esi
je 0x51b9c0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
je 0x51b9d4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
mov ecx, dword [ebx + 8]
mov edx, dword [ebp + 8]
cmp ecx, edx
je 0x51b9e8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp eax, esi
mov dword [esp + 0x38], esi
jle 0x51ba4e
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebx + 0x10]
lea eax, [esi + edx]
mov dl, byte [ecx + esi + 0x12]
lea edi, [ecx + esi]
cmp dl, byte [eax + 0x12]
jne 0x51b875
mov eax, dword [eax + 0xc]
mov ecx, dword [edi + 0xc]
push eax
push ecx
call fcn.0051be10
add esp, 8
test eax, eax
je 0x51b875
mov edx, dword [ebx + 0x10]
mov al, byte [edx + esi + 0x10]
test al, al
je 0x51ba3b
mov eax, dword [ebp + 0x10]
mov cl, byte [esi + eax + 0x10]
test cl, cl
je 0x51b875
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx + 0xc]
inc eax
add esi, 0x14
cmp eax, ecx
mov dword [esp + 0x38], eax
jl 0x51b9f0
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x51ba99
mov al, byte [edi + 0x18]
test al, al
je 0x51ba64
mov dword [esp + 0x10], 1
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x51b875
push esi
push edi
call fcn.0051be40
add esp, 8
test eax, eax
jne 0x51ba8a
mov esi, dword [esi + 0x20]
test esi, esi
je 0x51b875
jmp 0x51ba6f
test esi, esi
je 0x51b875
mov edi, dword [edi + 0x20]
test edi, edi
jne 0x51ba55
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x51bab9
mov ecx, dword [ebp + 0x30]
push eax
push ecx
call fcn.005150f0
add esp, 8
test eax, eax
jne 0x51bab9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov esi, dword [esp + 0x30]
mov edx, dword [ebp + 0x48]
push edx
mov eax, dword [esi]
push eax
call fcn.0050ae10
mov edi, eax
push esi
mov dword [esp + 0x28], edi
call fcn.0051e480
push edi
mov edi, dword [esp + 0x40]
push edi
mov esi, eax
call fcn.00518b50
mov edi, dword [edi + 0x44]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x44]
push ebx
lea ebp, [edi + 1]
push edx
push eax
lea ecx, [ebp + 1]
mov dword [eax + 0x44], ecx
call fcn.0051add0
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x60]
push 0xa
push ebx
push eax
push ebp
push ecx
call fcn.00519420
mov eax, dword [ebx + 8]
add esp, 0x34
test eax, eax
jge 0x51bb26
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x51bb2e
mov eax, dword [esp + 0x10]
test eax, eax
je 0x51bb5d
push 0
push ebp
push 0x78
push esi
call fcn.005107e0
push 0
push 0
push 0x61
push esi
mov dword [esp + 0x58], eax
call fcn.005107e0
mov edx, dword [esp + 0x58]
mov dword [esp + 0x40], eax
push edx
push esi
call fcn.00510ca0
add esp, 0x28
jmp 0x51bb65
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
push 0xe
push eax
push ecx
push edi
push edx
call fcn.00519420
push 0
push edi
push 0x78
push esi
call fcn.005107e0
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x54]
push eax
call fcn.00513590
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
push ecx
call fcn.00513590
mov ecx, dword [ebx + 8]
add esp, 0x2c
test ecx, ecx
mov dword [esp + 0x10], eax
jl 0x51bc12
push eax
push edi
push 0x29
push esi
call fcn.005107e0
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], eax
push edx
push 0
push ebp
push 0x2f
push esi
call fcn.0050fb50
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x60]
push 0xfffffffffffffffe
push str.PRIMARY_KEY_must_be_unique
push 0
push eax
push 0x13
push 0x28
push esi
call fcn.0050fb10
mov ecx, dword [esp + 0x64]
add esp, 0x40
push ecx
push esi
call fcn.00510ca0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
push edx
push eax
push ecx
call fcn.0051aed0
add esp, 0x14
jmp 0x51bc2f
mov ecx, dword [ebx + 0x14]
push eax
test ecx, ecx
jne 0x51bc1f
push ebp
push 0x1b
jmp 0x51bc22
push edi
push 0x29
push esi
call fcn.005107e0
add esp, 0x10
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x34]
push edx
push edi
push 0x2d
push esi
call fcn.005107e0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
push eax
push ecx
push ebp
push 0x6e
push esi
call fcn.0050fb50
push 0xb
push esi
call fcn.00510800
mov edx, dword [ebx + 4]
push 0
push edx
push 0xffffffffffffffff
push esi
call fcn.0050fbc0
mov eax, dword [esp + 0x74]
push eax
push edi
push 0x6b
push esi
call fcn.005107e0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x7c]
add esp, 0x4c
push ecx
push ebx
push edx
push eax
call fcn.0051af00
mov ebx, dword [ebx + 0x14]
add esp, 0x10
test ebx, ebx
je 0x51bd88
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
test eax, eax
mov dword [esp + 0x3c], eax
je 0x51bccf
jmp 0x51bcb2
mov eax, dword [esp + 0x3c]
push eax
push ebx
call fcn.0051be40
add esp, 8
test eax, eax
jne 0x51bccf
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 0x20]
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x51bcae
push 0
push edi
push 0x22
push esi
call fcn.005107e0
push 0
push ebp
push 0x22
push esi
call fcn.005107e0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
push eax
push ecx
call fcn.00518e50
mov edx, dword [esp + 0x44]
push 0xfffffffffffffff0
push eax
mov eax, dword [esp + 0x6c]
push edx
mov ecx, dword [eax + 0x14]
push ecx
push edi
push 0xe
push esi
call fcn.0050fb10
mov edx, dword [esp + 0x74]
add esp, 0x44
push ebx
push edx
call fcn.00518e50
mov ecx, dword [ebx + 0x14]
push 0xfffffffffffffff0
push eax
mov eax, dword [esp + 0x50]
push eax
push ecx
push ebp
push 0xa
push esi
call fcn.0050fb10
push 0
push edi
push 0x78
push esi
call fcn.005107e0
mov edx, dword [esp + 0x68]
mov dword [esp + 0x6c], eax
push edx
push edi
push 8
push esi
call fcn.005107e0
mov eax, dword [esp + 0x78]
add esp, 0x44
push 1
push eax
push ebp
push 0x6c
push esi
call fcn.0050fb50
mov ecx, dword [esp + 0x4c]
inc ecx
push ecx
push edi
push 0x6b
push esi
call fcn.005107e0
mov edx, dword [esp + 0x5c]
push edx
push esi
call fcn.00510ca0
mov ebx, dword [ebx + 0x20]
add esp, 0x2c
test ebx, ebx
jne 0x51bc9d
mov eax, dword [esp + 0x28]
push eax
push esi
call fcn.00510ca0
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x38]
push ecx
push ebx
call fcn.005135c0
mov edx, dword [esp + 0x44]
push edx
push ebx
call fcn.005135c0
push 0
push edi
push 0x22
push esi
call fcn.005107e0
push 0
push ebp
push 0x22
push esi
call fcn.005107e0
mov edi, dword [esp + 0x58]
add esp, 0x38
test edi, edi
je 0x51bdf9
push 0
push 0
push 0x28
push esi
call fcn.005107e0
push edi
push esi
call fcn.00510ca0
push 0
push ebp
push 0x22
push esi
call fcn.005107e0
add esp, 0x28
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1c
ret