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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
mov eax, dword [0x56e00c]
xor eax, esp
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 0xc]
test edx, edx
push ebx
push esi
setne al
mov dword [esp + 0x20], edx
push edi
mov edi, ecx
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax + 0x19]
add eax, 7
mov esi, dword [edi]
lea eax, [ecx + eax*4]
mov ebx, dword [eax]
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x50], eax
test edx, edx
je 0x466615
test ebx, ebx
jne 0x466615
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x50]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x24], ebx
mov ebx, ecx
push eax
push ebx
mov ecx, edi
call fcn.00464530
add esp, 0xc
test eax, eax
jne 0x4665ba
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [ebx + 0x14], ecx
jle 0x466378
mov dword [esp + 0x54], 0x55d948
mov dword [esp + 0x58], 3
mov dword [esp + 0x5c], 0x55d944
mov dword [esp + 0x60], 3
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4660f0
mov edx, dword [eax + ecx*4]
jmp 0x4660f3
mov edx, dword [ebx + 0x24]
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x466111
mov eax, dword [eax + 4]
movsx eax, word [eax + ecx*2]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ecx*8]
jmp 0x466116
mov ecx, 0x55f17c
mov eax, dword [ebx]
lea edx, [edx + edx*2]
shl edx, 3
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
mov eax, ecx
mov dword [esp + 0x44], edx
test ecx, ecx
je 0x46614d
cmp byte [ecx], 0
je 0x466146
nop dword [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x466140
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x40], eax
mov eax, edx
test edx, edx
je 0x46616d
cmp byte [edx], 0
je 0x466166
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x466160
sub eax, edx
and eax, 0x3fffffff
push 0
push ecx
mov dword [esp + 0x50], eax
mov edx, 0x1b
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
push 0
push 0
call fcn.00451920
add esp, 0x10
mov edx, 0x1b
push eax
push 0
push ecx
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
push 0
push 0
call fcn.00451920
add esp, 0x10
mov edx, 0x1b
mov ecx, edi
push eax
lea eax, [esp + 0x64]
push eax
push 0
push 0
call fcn.00451920
add esp, 0xc
mov edx, 0x7a
mov ecx, edi
push eax
call fcn.00451920
add esp, 0xc
mov edx, 0x4f
mov ecx, edi
push eax
call fcn.00451920
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ecx, esi
push eax
call fcn.00451a80
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x4662b3
push 0
push ecx
push 0
push ecx
lea eax, [esp + 0x4c]
mov edx, 0x1b
push eax
push 0
push 0
mov ecx, edi
call fcn.00451920
add esp, 0x10
mov edx, 0x1b
mov ecx, edi
push eax
lea eax, [esp + 0x6c]
push eax
push 0
push 0
call fcn.00451920
add esp, 0xc
mov edx, 0x7a
mov ecx, edi
push eax
call fcn.00451920
add esp, 0x10
mov edx, 0x1b
push eax
push 0
push ecx
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
push 0
push 0
call fcn.00451920
add esp, 0x10
mov edx, 0x1b
mov ecx, edi
push eax
lea eax, [esp + 0x64]
push eax
push 0
push 0
call fcn.00451920
add esp, 0xc
mov edx, 0x7a
mov ecx, edi
push eax
call fcn.00451920
add esp, 0xc
mov edx, 0x49
mov ecx, edi
push eax
call fcn.00451920
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov ecx, esi
push eax
call fcn.00451a80
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
cmp eax, 6
je 0x466366
cmp eax, 9
jne 0x466309
test ecx, ecx
je 0x466366
push 0
push ecx
lea eax, [esp + 0x44]
mov edx, 0x1b
push eax
push 0
push 0
mov ecx, edi
call fcn.00451920
add esp, 0x10
mov edx, 0x1b
mov ecx, edi
push eax
lea eax, [esp + 0x64]
push eax
push 0
push 0
call fcn.00451920
add esp, 0xc
mov edx, 0x7a
push eax
jmp 0x466336
push 0
push 0
cmp eax, 8
jne 0x46632f
mov eax, dword [ebx]
mov edx, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov edx, dword [eax + edx + 4]
test edx, edx
je 0x46632f
mov ecx, esi
call fcn.00451fa0
add esp, 8
jmp 0x466340
mov edx, 0x65
push 0
mov ecx, edi
call fcn.00451920
add esp, 0xc
mov edx, dword [esp + 0x28]
mov ecx, edi
push eax
call fcn.00452940
add esp, 4
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x44]
mov edx, eax
push 0
push ecx
mov ecx, edi
call fcn.004529e0
add esp, 8
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, dword [ebx + 0x14]
jl 0x4660e3
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.004246f0
mov eax, dword [ebx]
mov eax, dword [eax]
mov esi, eax
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4663a4
cmp byte [eax], 0
je 0x46639c
inc esi
cmp byte [esi], 0
jne 0x466396
sub esi, eax
and esi, 0x3fffffff
cmp dword [esp + 0x30], 6
jne 0x46644d
mov dword [esp + 0x5c], eax
mov eax, str.FOREIGN_KEY_constraint_failed
mov dword [esp + 0x60], esi
mov dword [esp + 0x44], str.FOREIGN_KEY_constraint_failed
inc eax
cmp byte [eax], 0
jne 0x4663c4
mov ebx, dword [esp + 0x14]
sub eax, str.FOREIGN_KEY_constraint_failed
and eax, 0x3fffffff
mov edx, 0x39
mov dword [esp + 0x48], eax
mov ecx, ebx
lea eax, [esp + 0x44]
push 0
push eax
call fcn.00451780
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
je 0x4663fe
mov byte [eax + 1], 2
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x30]
lea eax, [esp + 0x78]
xor edx, edx
push ecx
push 0
push eax
mov ecx, ebx
call fcn.0045ea90
add esp, 0xc
xor edx, edx
mov ecx, edi
push eax
push dword [esp + 0x58]
call fcn.00452940
add esp, 4
mov edx, eax
mov ecx, edi
call fcn.0046eea0
add esp, 0x20
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], 0
jmp 0x466451
mov ebx, dword [esp + 0x14]
mov al, byte [ebx + 0xf2]
lea edx, [esi + 0x4d]
mov ecx, ebx
mov byte [esp + 0xf], al
mov byte [ebx + 0xf2], 0
call fcn.00424920
mov ebx, eax
test ebx, ebx
je 0x46652f
lea eax, [esi + 0x4d]
push eax
push 0
push ebx
call fcn.004966c0
add esp, 0xc
test ebx, ebx
je 0x46652f
lea ecx, [ebx + 0x24]
push esi
push dword [esp + 0x20]
lea eax, [ecx + 0x28]
mov dword [ebx + 0x1c], ecx
push eax
mov dword [esp + 0x1c], ecx
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], esi
call fcn.00496d40
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, esi
push 0
push 1
call fcn.00451fa0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
push 1
mov dword [ecx + 0x14], eax
mov ecx, esi
call fcn.00452340
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x2c]
mov dword [ecx + 0x18], eax
mov ecx, esi
push 1
call fcn.00452800
mov esi, dword [esp + 0x14]
add esp, 4
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x466531
push 0
push 0
push eax
mov edx, 0x13
mov ecx, edi
call fcn.00451920
mov edi, dword [esp + 0x20]
add esp, 0xc
mov edx, eax
mov dword [esp + 0x20], eax
mov ecx, edi
push 0
push 1
call fcn.00451fa0
add esp, 8
mov dword [ebx + 0xc], eax
jmp 0x466535
xor esi, esi
mov edi, dword [esp + 0x14]
mov al, byte [esp + 0xf]
mov ecx, edi
mov edx, dword [esp + 0x18]
mov byte [edi + 0xf2], al
call fcn.00451e60
mov edx, dword [esp + 0x20]
mov ecx, edi
call fcn.00451e60
mov edx, dword [esp + 0x28]
mov ecx, edi
call fcn.00452b00
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x46657c
mov edx, eax
mov ecx, edi
call fcn.0046ee30
mov edx, dword [esp + 0x2c]
mov ecx, edi
call fcn.004246f0
cmp byte [edi + 0x40], 1
jne 0x4665ce
test ebx, ebx
je 0x4665ba
mov esi, dword [ebx + 0x1c]
mov ecx, edi
mov edx, dword [esi + 0x14]
call fcn.00451e60
mov edx, dword [esi + 0x18]
mov ecx, edi
call fcn.00452b00
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.0046efd0
mov edx, dword [ebx + 0xc]
mov ecx, edi
call fcn.00451e60
mov edx, ebx
mov ecx, edi
call fcn.004246f0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0048cd50
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
cmp eax, 6
je 0x4665ee
cmp eax, 9
jne 0x4665e9
test edx, edx
jne 0x4665e9
mov byte [esi], 0x6d
jmp 0x4665f1
mov byte [esi], 0x6e
jmp 0x4665f1
mov byte [esi], 0x77
mov ecx, dword [esp + 0x34]
test edx, edx
mov dword [esi + 4], ebx
mov eax, dword [ecx + 0x44]
mov dword [ebx + 0x14], eax
mov ecx, dword [ecx + 0x44]
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x18], ecx
setne cl
add cl, 0x6d
mov dword [eax], ebx
mov byte [ebx + 8], cl
mov ecx, dword [esp + 0x64]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0048cd50
mov esp, ebp
pop ebp
ret