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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x491024]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [esp + 0x4c], edx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x30], ecx
push edi
mov eax, dword [esi]
mov dword [esp + 0x14], eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x3c], ebx
setne al
movzx ecx, byte [ebx + eax + 0x19]
add eax, 7
mov edi, dword [ebx + eax*4]
lea eax, [ebx + eax*4]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x70], eax
test ecx, ecx
je 0x45796f
test edi, edi
jne 0x45796f
lea eax, [esp + 0x28]
mov dword [esp + 0x5c], edi
push eax
lea eax, [esp + 0x60]
mov dword [esp + 0x2c], edi
push eax
mov dword [esp + 0x2c], edi
mov ecx, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x28], edi
mov edi, edx
push ebx
call fcn.00455840
add esp, 0xc
test eax, eax
jne 0x457908
xor ecx, ecx
mov dword [esp + 0x64], ecx
cmp dword [ebx + 0x14], ecx
jle 0x457586
mov dword [esp + 0x74], 0x488904
mov dword [esp + 0x78], 3
mov dword [esp + 0x7c], 0x4888bc
mov dword [esp + 0x80], 3
nop dword [eax + eax]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x45700d
mov edx, dword [eax + ecx*4]
jmp 0x457010
mov edx, dword [ebx + 0x24]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x457029
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 4]
mov ecx, dword [eax + ecx*8]
jmp 0x45702e
mov ecx, 0x489f0c
mov eax, dword [ebx]
lea edx, [edx + edx*2]
shl edx, 3
mov dword [esp + 0x10], edx
mov dword [esp + 0x54], ecx
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
mov eax, ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x68], edx
test ecx, ecx
je 0x457064
cmp byte [ecx], 0
je 0x45705d
inc eax
cmp byte [eax], 0
jne 0x457057
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x58], eax
mov edi, edx
test edx, edx
je 0x457081
cmp byte [edx], 0
je 0x457079
inc edi
cmp byte [edi], 0
jne 0x457073
sub edi, edx
and edi, 0x3fffffff
mov ecx, dword [esi]
lea eax, [esp + 0x68]
push 1
push eax
mov edx, 0x1a
mov dword [esp + 0x74], edi
call fcn.00445320
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4570b9
xor edx, edx
mov ecx, ebx
call fcn.004459d0
xor edx, edx
mov ecx, ebx
call fcn.004459d0
jmp 0x4570dd
mov ecx, eax
call fcn.00445200
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x5c]
cmp dword [ecx + 0x14], eax
jle 0x4570dd
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1a
call fcn.00445320
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x457119
xor edx, edx
mov ecx, eax
call fcn.004459d0
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.004459d0
jmp 0x457139
mov ecx, ebx
call fcn.00445200
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
cmp dword [ebx + 0x14], eax
jle 0x457139
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x74]
push 1
push eax
mov edx, 0x1a
call fcn.00445320
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x457171
xor edx, edx
mov ecx, eax
call fcn.004459d0
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.004459d0
jmp 0x457191
mov ecx, ebx
call fcn.00445200
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
cmp dword [ebx + 0x14], eax
jle 0x457191
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
push 0
push dword [esp + 0x3c]
mov edx, 0x76
mov ecx, esi
push 0
push dword [esp + 0x54]
push ebx
call fcn.004454c0
add esp, 0xc
mov edx, 0x4c
mov ecx, esi
push eax
call fcn.004454c0
mov ebx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, ebx
push eax
call fcn.00445590
mov ecx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x45739e
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1a
call fcn.00445320
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x457214
xor edx, edx
mov ecx, ebx
call fcn.004459d0
xor edx, edx
mov ecx, ebx
call fcn.004459d0
jmp 0x457238
mov ecx, eax
call fcn.00445200
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x5c]
cmp dword [ecx + 0x14], eax
jle 0x457238
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x7c]
push 1
push eax
mov edx, 0x1a
call fcn.00445320
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x48], eax
test eax, eax
jne 0x45726c
xor edx, edx
mov ecx, ebx
call fcn.004459d0
xor edx, edx
mov ecx, ebx
call fcn.004459d0
jmp 0x457290
mov ecx, eax
call fcn.00445200
mov eax, dword [esi]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0x5c]
cmp dword [ecx + 0x14], eax
jle 0x457290
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1a
call fcn.00445320
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4572c4
xor edx, edx
mov ecx, ebx
call fcn.004459d0
xor edx, edx
mov ecx, ebx
call fcn.004459d0
jmp 0x4572e8
mov ecx, eax
call fcn.00445200
mov eax, dword [esi]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x5c]
cmp dword [ecx + 0x14], eax
jle 0x4572e8
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x74]
push 1
push eax
mov edx, 0x1a
call fcn.00445320
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x457320
xor edx, edx
mov ecx, eax
call fcn.004459d0
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.004459d0
jmp 0x457340
mov ecx, ebx
call fcn.00445200
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
cmp dword [ebx + 0x14], eax
jle 0x457340
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
push 0
push ecx
push 0
push dword [esp + 0x44]
mov edx, 0x76
mov ecx, esi
push dword [esp + 0x58]
call fcn.004454c0
add esp, 0x10
mov edx, 0x76
mov ecx, esi
push eax
push 0
push dword [esp + 0x24]
push ebx
call fcn.004454c0
add esp, 0xc
mov edx, 0x46
mov ecx, esi
push eax
call fcn.004454c0
mov ebx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ecx, ebx
push eax
call fcn.00445590
mov ecx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
cmp eax, 6
je 0x45756c
cmp eax, 9
jne 0x45748f
test ecx, ecx
je 0x45756c
cmp eax, eax
jne 0x45748f
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1a
call fcn.00445320
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x457400
xor edx, edx
mov ecx, eax
call fcn.004459d0
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.004459d0
jmp 0x457420
mov ecx, ebx
call fcn.00445200
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
cmp dword [ebx + 0x14], eax
jle 0x457420
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x7c]
push 1
push eax
mov edx, 0x1a
call fcn.00445320
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x457458
xor edx, edx
mov ecx, eax
call fcn.004459d0
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.004459d0
jmp 0x457478
mov ecx, ebx
call fcn.00445200
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
cmp dword [ebx + 0x14], eax
jle 0x457478
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
push 0
push dword [esp + 0x1c]
mov edx, 0x76
mov ecx, esi
push ebx
call fcn.004454c0
mov ebx, eax
jmp 0x45750d
cmp eax, 8
jne 0x4574bb
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [eax + edx + 4]
test edx, edx
je 0x4574bb
push 0
push 0
mov ecx, ebx
call fcn.00445b30
add esp, 8
mov ebx, eax
jmp 0x457510
mov ecx, dword [esi]
mov edx, 0x62
push 1
push 0
call fcn.00445320
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x10], eax
test ebx, ebx
jne 0x4574f0
xor edx, edx
mov ecx, eax
call fcn.004459d0
mov ecx, dword [esp + 0x10]
xor edx, edx
call fcn.004459d0
jmp 0x457510
mov ecx, ebx
call fcn.00445200
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
cmp dword [ebx + 0x14], eax
jle 0x457510
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
mov edx, dword [esp + 0x44]
mov ecx, esi
push ebx
call fcn.004463c0
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
je 0x45756c
cmp dword [esp + 0x60], 0
mov eax, dword [edx]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea eax, [eax + ecx*4]
mov dword [esp + 0x10], eax
jne 0x457543
xor ebx, ebx
jmp 0x457569
mov ecx, dword [esi]
lea edx, [edi + 1]
call fcn.0041a540
mov ebx, eax
test ebx, ebx
je 0x457565
push edi
push dword [esp + 0x64]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
mov eax, dword [esp + 0x10]
mov dword [eax - 0x10], ebx
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x3c]
inc ecx
mov edi, dword [esp + 0x50]
mov dword [esp + 0x64], ecx
cmp ecx, dword [ebx + 0x14]
jl 0x457000
mov edi, dword [esp + 0x14]
mov ecx, edi
mov edx, dword [esp + 0x28]
call fcn.0041a2e0
mov eax, dword [ebx]
mov eax, dword [eax]
mov ebx, eax
mov dword [esp + 0x10], eax
test eax, eax
je 0x4575b6
cmp byte [eax], 0
je 0x4575ae
inc ebx
cmp byte [ebx], 0
jne 0x4575a8
sub ebx, eax
and ebx, 0x3fffffff
cmp dword [esp + 0x4c], 6
jne 0x457746
mov dword [esp + 0x7c], eax
mov eax, str.foreign_key_constraint_failed
mov dword [esp + 0x80], ebx
mov dword [esp + 0x68], str.foreign_key_constraint_failed
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4575e0
sub eax, str.foreign_key_constraint_failed
mov edx, 0x38
and eax, 0x3fffffff
mov ecx, edi
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x68]
push 0
push eax
call fcn.00445320
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
je 0x457616
mov byte [eax + 1], 2
mov edx, 0x50
mov ecx, edi
call fcn.0041a540
mov edi, eax
test edi, edi
je 0x457669
push 0x50
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, 1
mov word [edi + 2], ax
mov edx, edi
movsx eax, word [edi]
mov edi, dword [esp + 0x14]
mov ecx, edi
push eax
push 1
call fcn.00450d90
add esp, 8
mov ecx, eax
cmp byte [edi + 0x38], 0
mov dword [esp + 0x2c], ecx
je 0x4576d0
mov edx, ecx
mov ecx, edi
call fcn.00450fd0
mov dword [esp + 0x2c], 0
mov eax, dword [esi]
mov edx, 0xc
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.0041a540
mov edi, eax
test edi, edi
je 0x4576fc
mov ecx, dword [esp + 0x28]
xorps xmm0, xmm0
movq qword [edi], xmm0
mov edx, 0x14
mov dword [edi + 8], 0
call fcn.0041a540
mov edx, eax
mov dword [edi + 8], edx
test edx, edx
je 0x4576fc
mov ecx, dword [edi]
xorps xmm0, xmm0
lea eax, [ecx + ecx*4]
lea edx, [edx + eax*4]
lea eax, [ecx + 1]
mov dword [edi], eax
mov eax, dword [esp + 0x3c]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx], eax
jmp 0x457716
movsx eax, word [ecx]
lea edx, [esp + 0x7c]
lea eax, [eax + eax*8]
lea edi, [ecx + eax*8]
mov ecx, dword [esp + 0x14]
call fcn.0044db40
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dword [edi - 0x38], eax
call fcn.0044db40
mov dword [edi - 0x3c], eax
jmp 0x457671
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
call fcn.004459d0
mov ecx, dword [esp + 0x28]
mov edx, edi
call fcn.00446590
xor edi, edi
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x48]
mov edx, edi
mov ecx, esi
push dword [esp + 0x48]
call fcn.0045ef50
mov edi, dword [esp + 0x34]
add esp, 0x20
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0
mov al, byte [edi + 0xea]
lea edx, [ebx + 0x4d]
mov ecx, edi
mov byte [esp + 0x1f], al
mov byte [edi + 0xea], 0
call fcn.0041a540
mov edi, eax
test edi, edi
je 0x457881
lea eax, [ebx + 0x4d]
push eax
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test edi, edi
je 0x457881
lea ecx, [edi + 0x24]
push ebx
push dword [esp + 0x14]
lea eax, [ecx + 0x28]
mov dword [edi + 0x1c], ecx
push eax
mov dword [esp + 0x30], ecx
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], ebx
call sub.VCRUNTIME140.dll_memcpy
mov ebx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, ebx
push 0
push 1
call fcn.00445b30
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
push 1
mov dword [ecx + 0x14], eax
mov ecx, ebx
call fcn.00445de0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, dword [esp + 0x2c]
mov dword [ecx + 0x18], eax
mov ecx, ebx
push 1
call fcn.00446290
mov ecx, dword [esp + 0x28]
add esp, 4
cmp dword [esp + 0x20], 0
mov dword [ecx + 8], eax
je 0x457885
mov ecx, dword [esi]
mov edx, 0x13
push 1
push 0
call fcn.00445320
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x10], eax
test ebx, ebx
jne 0x45782d
mov edx, dword [esp + 0x20]
mov ecx, eax
call fcn.004459d0
mov ecx, dword [esp + 0x10]
xor edx, edx
call fcn.004459d0
jmp 0x457864
mov eax, dword [esp + 0x20]
mov ecx, 0x100
mov dword [ebx + 8], eax
mov ax, word [eax + 2]
and ax, cx
mov ecx, ebx
or word [ebx + 2], ax
call fcn.00445200
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
cmp dword [ebx + 0x14], eax
jle 0x457864
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c540
add esp, 0xc
mov edx, ebx
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x14]
mov ecx, ebx
push 0
push 1
call fcn.00445b30
add esp, 8
mov dword [edi + 0xc], eax
jmp 0x457885
mov ebx, dword [esp + 0x14]
mov al, byte [esp + 0x1f]
mov ecx, ebx
mov edx, dword [esp + 0x30]
mov byte [ebx + 0xea], al
call fcn.004459d0
mov edx, dword [esp + 0x20]
mov ecx, ebx
call fcn.004459d0
mov edx, dword [esp + 0x44]
mov ecx, ebx
call fcn.00446590
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x4578ca
mov edx, esi
mov ecx, ebx
call fcn.0045eee0
mov edx, esi
mov ecx, ebx
call fcn.0041a2e0
cmp byte [ebx + 0x38], 1
jne 0x45791c
test edi, edi
je 0x457908
mov esi, dword [edi + 0x1c]
mov ecx, ebx
mov edx, dword [esi + 0x14]
call fcn.004459d0
mov edx, dword [esi + 0x18]
mov ecx, ebx
call fcn.00446590
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.0045f0f0
mov edx, dword [edi + 0xc]
mov ecx, ebx
call fcn.004459d0
mov edx, edi
mov ecx, ebx
call fcn.0041a2e0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004787cb
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
cmp eax, 6
je 0x457944
cmp eax, 9
jne 0x45793b
test edx, edx
jne 0x45793b
mov ecx, dword [esp + 0x24]
mov byte [ecx], 0x6a
jmp 0x45794b
mov ecx, dword [esp + 0x24]
mov byte [ecx], 0x6b
jmp 0x45794b
mov ecx, dword [esp + 0x24]
mov byte [ecx], 0x74
mov esi, dword [esp + 0x50]
test edx, edx
mov dword [ecx + 4], edi
mov eax, dword [esi + 0x40]
mov dword [edi + 0x14], eax
mov ecx, dword [esi + 0x40]
mov eax, dword [esp + 0x70]
mov dword [edi + 0x18], ecx
setne cl
add cl, 0x6a
mov dword [eax], edi
mov byte [edi + 8], cl
mov ecx, dword [esp + 0x84]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004787cb
mov esp, ebp
pop ebp
ret