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

Disassembly:
sub esp, 0x40
mov eax, dword [esp + 0x58]
push ebx
mov ebx, dword [esp + 0x54]
push ebp
xor ebp, ebp
push esi
mov esi, dword [esp + 0x54]
push edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], ebp
cmp eax, ebp
je 0x6008af
mov dword [esp + 0x28], eax
cmp dword [esp + 0x6c], ebp
jne 0x6008b3
mov dword [esp + 0x28], ebx
mov eax, dword [edi]
mov dword [esp + 0x18], eax
call fcn.005e1760
mov edi, eax
movsx eax, word [esi + 0x26]
inc ebx
cmp eax, ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
jle 0x6009da
xor ebp, ebp
jmp 0x6008e0
movsx ecx, word [esi + 0x24]
cmp dword [esp + 0x14], ecx
je 0x6009c3
mov edx, dword [esi + 4]
lea eax, [edx + ebp]
movzx edx, byte [eax + 0x14]
test edx, edx
je 0x6009c3
mov ecx, dword [esp + 0x70]
cmp ecx, 0x63
je 0x60090d
mov edx, ecx
jmp 0x600912
cmp edx, 0x63
je 0x60091d
cmp edx, 5
jne 0x600922
cmp dword [eax + 4], 0
jne 0x600922
mov edx, 2
lea eax, [edx - 1]
cmp eax, 3
ja case.default.0x60092a
jmp dword [eax*4 + 0x600f48]
mov ecx, dword [esp + 0x54]
call fcn.005d1f10
push ebx
push edx
push 0x13
push 5
mov eax, edi
call fcn.005d7f10
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + ebp]
mov eax, dword [eax]
mov esi, dword [esp + 0x28]
push edx
push eax
push str._s._s_may_not_be_NULL
call fcn.005dc8b0
push eax
or ecx, 0xffffffff
push edi
or eax, ecx
call fcn.005d8230
add esp, 0x24
jmp 0x6009bf
mov eax, dword [esp + 0x74]
push edi
mov ecx, ebx
mov edx, 0x49
call fcn.005d7fb0
add esp, 4
jmp 0x6009c3
push edi
mov eax, ebx
mov ecx, 0x4a
call fcn.005d7f90
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + ebp + 4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
add esp, 4
mov esi, ebx
call fcn.005d96d0
mov eax, dword [esp + 0x20]
mov ecx, edi
call fcn.005cfe80
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
inc eax
inc ebx
add ebp, 0x18
cmp eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
jl 0x6008e0
mov ebp, dword [esi + 0x18]
test ebp, ebp
je 0x600adc
mov eax, dword [esp + 0x18]
test dword [eax + 0x18], 0x400
jne 0x600adc
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x54]
inc eax
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], eax
cmp eax, 0x63
jne 0x600a17
mov dword [esp + 0x10], 2
cmp dword [ebp], 0
mov dword [esp + 0x14], 0
jle 0x600adc
xor esi, esi
mov dword [esp + 0x20], esi
nop
mov eax, edi
call fcn.005d7fd0
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x54]
mov ebx, eax
mov eax, dword [esi + edx]
push 8
push ebx
push eax
push ecx
mov dword [esp + 0x40], ebx
call fcn.006000d0
add esp, 0x10
cmp dword [esp + 0x10], 4
jne 0x600a6f
mov eax, dword [esp + 0x74]
xor ecx, ecx
push edi
lea edx, [ecx + 1]
call fcn.005d7fb0
add esp, 4
jmp 0x600aba
cmp dword [esp + 0x10], 5
mov edx, dword [ebp + 8]
mov esi, dword [esi + edx + 4]
jne 0x600a85
mov dword [esp + 0x10], 2
test esi, esi
je 0x600a9d
push esi
mov esi, dword [esp + 0x1c]
push str.constraint__s_failed
call fcn.005dc8b0
add esp, 8
jmp 0x600a9f
xor eax, eax
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x54]
push 0xffffffffffffffff
push eax
call fcn.005e61d0
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x38]
add esp, 8
mov edx, ebx
mov ecx, edi
call fcn.005cfdf0
mov eax, dword [esp + 0x14]
inc eax
add esi, 0x14
cmp eax, dword [ebp]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], esi
jl 0x600a30
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x600c31
mov eax, dword [esp + 0x58]
movzx esi, byte [eax + 0x2b]
mov eax, dword [esp + 0x70]
cmp eax, 0x63
je 0x600afd
mov esi, eax
jmp 0x600b07
cmp esi, 0x63
jne 0x600b07
mov esi, 2
cmp dword [esp + 0x6c], 0
mov ebp, dword [esp + 0x60]
je 0x600b26
push ecx
push 0
push ebp
push 0x4c
mov eax, edi
call fcn.005d7f10
add esp, 0x10
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x5c]
push ebp
push 0
push ecx
push 0x36
mov eax, edi
call fcn.005d7f10
mov dword [esp + 0x30], eax
lea eax, [esi - 1]
add esp, 0x10
cmp eax, 4
ja case.default.0x600b4a
jmp dword [eax*4 + 0x600f58]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x54]
xor esi, esi
test dword [edx + 0x18], 0x20000
je 0x600b7c
mov edx, dword [esp + 0x58]
push esi
push esi
push 0x6a
mov eax, ebx
call fcn.005d2ef0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x600bbe
mov eax, dword [esp + 0x58]
push 0
push 0
push eax
mov eax, ebx
call fcn.005d23e0
add esp, 0xc
test eax, eax
jne 0x600bbe
mov edx, dword [esp + 0x58]
cmp dword [edx + 8], eax
je 0x600bde
mov ecx, ebx
call fcn.005d1ef0
mov ecx, dword [esp + 0x5c]
push 0
push ecx
mov eax, edx
call fcn.005f4a80
add esp, 8
mov dword [esp + 0x1c], 1
jmp 0x600c14
mov ecx, ebx
call fcn.005d1ef0
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push 5
push esi
push 0
push ebp
push edx
push eax
push ebx
call fcn.00614630
add esp, 0x1c
mov dword [esp + 0x1c], 1
jmp 0x600c14
mov eax, dword [esp + 0x74]
xor ecx, ecx
push edi
lea edx, [ecx + 1]
call fcn.005d7fb0
add esp, 4
jmp 0x600c14
mov esi, 2
mov ebx, dword [esp + 0x54]
push 0xfffffffffffffffe
push str.PRIMARY_KEY_must_be_unique
call fcn.005e61d0
add esp, 8
mov eax, dword [esp + 0x20]
mov ecx, edi
call fcn.005cfe80
cmp dword [esp + 0x6c], 0
je 0x600c31
mov eax, dword [esp + 0x24]
mov ecx, edi
call fcn.005cfe80
mov ecx, dword [esp + 0x58]
mov ebp, dword [ecx + 8]
mov dword [esp + 0x68], 0
test ebp, ebp
je 0x600f30
mov ebx, edi
lea ebx, [ebx]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
cmp dword [edx + eax*4], 0
je 0x600f21
mov esi, dword [ebp + 0x24]
mov ecx, dword [esp + 0x54]
inc esi
call fcn.005d1770
xor edi, edi
cmp dword [ebp + 0x24], edi
mov dword [esp + 0x14], eax
jle 0x600cb0
mov esi, eax
lea esp, [esp]
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + edi*4]
mov edx, dword [esp + 0x58]
movsx ecx, word [edx + 0x24]
cmp eax, ecx
mov ecx, dword [esp + 0x60]
push ebx
mov edx, 0xf
je 0x600c9f
inc ecx
add ecx, eax
mov eax, esi
call fcn.005d7fb0
inc edi
add esp, 4
inc esi
cmp edi, dword [ebp + 0x24]
jl 0x600c80
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x60]
lea eax, [esi + edi]
push ebx
mov edx, 0xf
call fcn.005d7fb0
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp + 0x24]
push ecx
inc edx
push edx
push esi
push 0x1f
mov eax, ebx
call fcn.005d7f10
mov edi, ebp
mov eax, ebx
call fcn.005da4e0
push eax
push ebx
xor ecx, ecx
or eax, 0xffffffff
call fcn.005d8230
mov ecx, dword [ebp + 0x24]
mov eax, dword [esp + 0x70]
add esp, 0x1c
inc ecx
mov edi, esi
call fcn.005d15c0
movzx eax, byte [ebp + 0x2c]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x600d28
mov esi, dword [ebp + 0x24]
mov eax, dword [esp + 0x54]
inc esi
mov ecx, edi
call fcn.005d17a0
jmp 0x600f21
mov ecx, dword [esp + 0x70]
cmp ecx, 0x63
je 0x600d35
mov eax, ecx
jmp 0x600d3f
cmp eax, 0x63
jne 0x600d43
mov eax, 2
mov dword [esp + 0x10], eax
cmp dword [esp + 0x1c], 0
je 0x600d66
cmp eax, 4
jne 0x600d59
mov dword [esp + 0x10], 5
jmp 0x600d66
cmp eax, 3
jne 0x600d66
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x54]
call fcn.005d1720
mov ecx, dword [esp + 0x28]
mov esi, eax
push ebx
mov edx, 0xf
mov dword [esp + 0x28], esi
call fcn.005d7fb0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x60]
push 0xfffffffffffffff2
push eax
lea edx, [ecx + edx + 1]
push 0x35
mov eax, esi
xor ecx, ecx
mov edi, ebx
call fcn.005de560
mov esi, dword [ebp + 0x24]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x64]
add esp, 0x10
inc esi
call fcn.005d17a0
cmp dword [esp + 0x10], 0
jle 0x600eb8
mov eax, dword [esp + 0x10]
cmp eax, 3
jle 0x600df4
cmp eax, 4
jne 0x600eb8
mov eax, dword [esp + 0x74]
xor ecx, ecx
push ebx
lea edx, [ecx + 1]
call fcn.005d7fb0
mov edi, dword [esp + 0x58]
add esp, 4
jmp 0x600f0b
push 0xc8
xor edx, edx
xor ecx, ecx
lea eax, [esp + 0x38]
call fcn.005caa20
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x24]
add esp, 4
cmp eax, 1
mov edi, str.columns
jg 0x600e23
mov edi, str.column
xor esi, esi
test eax, eax
jle 0x600e69
lea esp, [esp]
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + esi*4]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 4]
mov ebx, dword [ecx + edx*8]
push 0xffffffffffffffff
push edi
lea eax, [esp + 0x3c]
call fcn.005d5400
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x44]
mov edi, 0x7c0bf0
call fcn.005d5400
inc esi
add esp, 0x10
cmp esi, dword [ebp + 0x24]
jl 0x600e30
cmp dword [ebp + 0x24], 1
mov eax, str._are_not_unique
jg 0x600e79
mov eax, str._is_not_unique
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x3c]
call fcn.005d5400
lea edi, [esp + 0x3c]
call fcn.005d5500
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x5c]
mov edi, eax
push 0
push edi
call fcn.005e61d0
mov ecx, dword [esp + 0x44]
add esp, 0x10
mov edx, edi
call fcn.005ca970
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x54]
jmp 0x600f0b
mov edi, dword [esp + 0x54]
mov ecx, edi
xor edx, edx
call fcn.005d1ef0
mov eax, dword [esp + 0x18]
test dword [eax + 0x18], 0x20000
je 0x600ee6
push edx
push edx
mov edx, dword [esp + 0x60]
push 0x6a
mov eax, edi
call fcn.005d2ef0
add esp, 0xc
mov edx, eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x58]
push 5
push edx
mov edx, dword [esp + 0x64]
push 0
push ecx
push edx
push eax
push edi
call fcn.00614630
add esp, 0x1c
mov dword [esp + 0x1c], 1
mov eax, dword [esp + 0x20]
mov ecx, ebx
call fcn.005cfe80
mov esi, dword [esp + 0x24]
mov edx, edi
call fcn.005d1740
mov ebp, dword [ebp + 0x14]
inc dword [esp + 0x68]
test ebp, ebp
jne 0x600c50
mov eax, dword [esp + 0x78]
pop edi
pop esi
pop ebp
pop ebx
test eax, eax
je 0x600f42
mov ecx, dword [esp + 0xc]
mov dword [eax], ecx
add esp, 0x40
ret