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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x5e173c]
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 + 0x3c], ecx
push edi
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x60], 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 + 0x68], eax
test ecx, ecx
je 0x473235
test edi, edi
jne 0x473235
lea eax, [esp + 0x18]
mov dword [esp + 0x34], edi
push eax
lea eax, [esp + 0x38]
mov dword [esp + 0x1c], edi
push eax
mov dword [esp + 0x28], edi
mov ecx, esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], edi
mov edi, edx
push ebx
call fcn.00470b40
add esp, 0xc
test eax, eax
jne 0x4731ce
xor ecx, ecx
mov dword [esp + 0x64], ecx
cmp dword [ebx + 0x14], ecx
jle 0x472e1f
mov dword [esp + 0x74], 0x5b6124
mov dword [esp + 0x78], 3
mov dword [esp + 0x6c], 0x5b6120
mov dword [esp + 0x70], 3
mov eax, dword [esp + 0x18]
test eax, eax
je 0x472885
mov edx, dword [eax + ecx*4]
jmp 0x472888
mov edx, dword [ebx + 0x24]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4728a1
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 0x4728a6
mov ecx, 0x5b78c8
mov eax, dword [ebx]
lea edx, [edx + edx*2]
shl edx, 3
mov dword [esp + 0x14], edx
mov dword [esp + 0x54], ecx
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
mov eax, ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x7c], edx
test ecx, ecx
je 0x4728dd
cmp byte [ecx], 0
je 0x4728d6
nop
inc eax
cmp byte [eax], 0
jne 0x4728d0
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x58], eax
mov ebx, edx
test edx, edx
je 0x4728fe
cmp byte [edx], 0
je 0x4728f6
lea esp, [esp]
inc ebx
cmp byte [ebx], 0
jne 0x4728f0
sub ebx, edx
and ebx, 0x3fffffff
mov ecx, dword [esi]
lea eax, [esp + 0x7c]
push 1
push eax
mov edx, 0x1a
mov dword [esp + 0x88], ebx
call fcn.0045e4c0
mov edi, dword [esi]
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x472939
xor edx, edx
mov ecx, edi
call fcn.0045eaf0
xor edx, edx
mov ecx, edi
call fcn.0045eaf0
jmp 0x47295d
mov ecx, eax
call fcn.0045e3a0
mov eax, dword [esi]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x47295d
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1a
call fcn.0045e4c0
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x44], edi
mov dword [esp + 0x1c], eax
test edi, edi
jne 0x472999
xor edx, edx
mov ecx, eax
call fcn.0045eaf0
mov ecx, dword [esp + 0x1c]
xor edx, edx
call fcn.0045eaf0
jmp 0x4729b9
mov ecx, edi
call fcn.0045e3a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x4729b9
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x74]
push 1
push eax
mov edx, 0x1a
call fcn.0045e4c0
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x1c], eax
test edi, edi
jne 0x4729f1
xor edx, edx
mov ecx, eax
call fcn.0045eaf0
mov ecx, dword [esp + 0x1c]
xor edx, edx
call fcn.0045eaf0
jmp 0x472a11
mov ecx, edi
call fcn.0045e3a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x472a11
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
push 0
push dword [esp + 0x40]
mov edx, 0x76
mov ecx, esi
push 0
push dword [esp + 0x50]
push edi
call fcn.0045e650
add esp, 0xc
mov edx, 0x4c
mov ecx, esi
push eax
call fcn.0045e650
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x38]
mov ecx, edi
push eax
call fcn.0045e710
mov ecx, dword [esp + 0x44]
add esp, 4
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x472c1e
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1a
call fcn.0045e4c0
mov edi, dword [esi]
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x472a94
xor edx, edx
mov ecx, edi
call fcn.0045eaf0
xor edx, edx
mov ecx, edi
call fcn.0045eaf0
jmp 0x472ab8
mov ecx, eax
call fcn.0045e3a0
mov eax, dword [esi]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x472ab8
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x6c]
push 1
push eax
mov edx, 0x1a
call fcn.0045e4c0
mov edi, dword [esi]
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jne 0x472aec
xor edx, edx
mov ecx, edi
call fcn.0045eaf0
xor edx, edx
mov ecx, edi
call fcn.0045eaf0
jmp 0x472b10
mov ecx, eax
call fcn.0045e3a0
mov eax, dword [esi]
mov ecx, dword [esp + 0x44]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x472b10
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1a
call fcn.0045e4c0
mov edi, dword [esi]
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x472b44
xor edx, edx
mov ecx, edi
call fcn.0045eaf0
xor edx, edx
mov ecx, edi
call fcn.0045eaf0
jmp 0x472b68
mov ecx, eax
call fcn.0045e3a0
mov eax, dword [esi]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x472b68
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x74]
push 1
push eax
mov edx, 0x1a
call fcn.0045e4c0
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x2c], eax
test edi, edi
jne 0x472ba0
xor edx, edx
mov ecx, eax
call fcn.0045eaf0
mov ecx, dword [esp + 0x2c]
xor edx, edx
call fcn.0045eaf0
jmp 0x472bc0
mov ecx, edi
call fcn.0045e3a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x472bc0
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
push 0
push ecx
push 0
push dword [esp + 0x48]
mov edx, 0x76
mov ecx, esi
push dword [esp + 0x54]
call fcn.0045e650
add esp, 0x10
mov edx, 0x76
mov ecx, esi
push eax
push 0
push dword [esp + 0x28]
push edi
call fcn.0045e650
add esp, 0xc
mov edx, 0x46
mov ecx, esi
push eax
call fcn.0045e650
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, edi
push eax
call fcn.0045e710
mov ecx, dword [esp + 0x44]
add esp, 4
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
cmp eax, 6
je 0x472e05
cmp eax, 9
jne 0x472d0a
test ecx, ecx
je 0x472e05
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1a
call fcn.0045e4c0
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x2c], eax
test edi, edi
jne 0x472c78
xor edx, edx
mov ecx, eax
call fcn.0045eaf0
mov ecx, dword [esp + 0x2c]
xor edx, edx
call fcn.0045eaf0
jmp 0x472c98
mov ecx, edi
call fcn.0045e3a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x472c98
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x6c]
push 1
push eax
mov edx, 0x1a
call fcn.0045e4c0
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x2c], eax
test edi, edi
jne 0x472cd0
xor edx, edx
mov ecx, eax
call fcn.0045eaf0
mov ecx, dword [esp + 0x2c]
xor edx, edx
call fcn.0045eaf0
jmp 0x472cf0
mov ecx, edi
call fcn.0045e3a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x472cf0
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
push 0
push dword [esp + 0x20]
mov edx, 0x76
mov ecx, esi
push edi
call fcn.0045e650
mov edi, eax
jmp 0x472da3
cmp eax, 8
jne 0x472d36
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x14]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [eax + edx + 4]
test edx, edx
je 0x472d36
push 0
push 0
mov ecx, edi
call fcn.0045ec20
add esp, 8
mov edi, eax
jmp 0x472da6
mov ecx, dword [esi]
mov edx, 0x30
call fcn.00431490
mov edi, eax
test edi, edi
je 0x472d66
push 0x30
push 0
push edi
call fcn.0056cbb0
add esp, 0xc
mov byte [edi], 0x62
or eax, 0xffffffff
mov dword [edi + 0x18], 1
mov word [edi + 0x22], ax
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test edi, edi
jne 0x472d86
xor edx, edx
mov ecx, eax
call fcn.0045eaf0
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.0045eaf0
jmp 0x472da6
mov ecx, edi
call fcn.0045e3a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x472da6
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, esi
push edi
call fcn.0045f4e0
mov edi, eax
add esp, 4
mov dword [esp + 0x48], edi
test edi, edi
je 0x472e05
mov eax, dword [edi]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 8]
lea eax, [eax + ecx*8]
add eax, 0xffffffe8
cmp dword [esp + 0x5c], 0
mov dword [esp + 0x14], eax
jne 0x472ddc
xor edi, edi
jmp 0x472e02
mov ecx, dword [esi]
lea edx, [ebx + 1]
call fcn.00431490
mov edi, eax
test edi, edi
je 0x472dfe
push ebx
push dword [esp + 0x60]
push edi
call fcn.0056a7e0
add esp, 0xc
mov byte [edi + ebx], 0
mov eax, dword [esp + 0x14]
mov dword [eax + 4], edi
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
inc ecx
mov edi, dword [esp + 0x50]
mov dword [esp + 0x64], ecx
cmp ecx, dword [ebx + 0x14]
jl 0x472878
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
call fcn.00431240
mov eax, dword [ebx]
mov eax, dword [eax]
mov ebx, eax
mov dword [esp + 0x2c], eax
test eax, eax
je 0x472e4e
cmp byte [eax], 0
je 0x472e46
nop
inc ebx
cmp byte [ebx], 0
jne 0x472e40
sub ebx, eax
and ebx, 0x3fffffff
cmp dword [esp + 0x4c], 6
jne 0x473023
mov dword [esp + 0x7c], eax
mov edi, str.foreign_key_constraint_failed
mov dword [esp + 0x80], ebx
lea esp, [esp]
inc edi
cmp byte [edi], 0
jne 0x472e70
mov ecx, dword [esp + 0x10]
sub edi, str.foreign_key_constraint_failed
and edi, 0x3fffffff
lea eax, [edi + 0x31]
mov edx, eax
mov dword [esp + 0x14], eax
call fcn.00431490
mov dword [esp + 0x18], eax
test eax, eax
je 0x472efb
push dword [esp + 0x14]
push 0
push eax
call fcn.0056cbb0
mov ecx, dword [esp + 0x24]
or eax, 0xffffffff
add esp, 0xc
mov word [ecx + 0x22], ax
lea eax, [edi + 1]
mov byte [ecx], 0x38
test eax, eax
jne 0x472ecc
or dword [ecx + 4], 0x400
mov dword [ecx + 8], eax
jmp 0x472ef0
lea eax, [ecx + 0x30]
mov dword [ecx + 8], eax
test edi, edi
je 0x472ee9
push edi
push str.foreign_key_constraint_failed
push eax
call fcn.0056a7e0
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov eax, dword [ecx + 8]
mov byte [edi + eax], 0
mov dword [ecx + 0x18], 1
mov byte [ecx + 1], 2
mov ecx, dword [esp + 0x10]
mov edx, 0x50
call fcn.00431490
mov edi, eax
test edi, edi
je 0x472f4b
push 0x50
push 0
push edi
call fcn.0056cbb0
add esp, 0xc
mov byte [edi + 1], 1
movzx eax, byte [edi]
mov edx, edi
mov edi, dword [esp + 0x10]
mov ecx, edi
push eax
push 1
call fcn.0046b330
add esp, 8
mov ecx, eax
cmp byte [edi + 0x40], 0
mov dword [esp + 0x24], ecx
je 0x472fb1
mov edx, ecx
mov ecx, edi
call fcn.0046b550
mov dword [esp + 0x24], 0
mov eax, dword [esi]
mov edx, 0xc
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.00431490
mov edi, eax
test edi, edi
je 0x472fdd
mov ecx, dword [esp + 0x34]
xorps xmm0, xmm0
movq qword [edi], xmm0
mov edx, 0x18
mov dword [edi + 8], 0
call fcn.00431490
mov edx, eax
mov dword [edi + 8], edx
test edx, edx
je 0x472fdd
mov ecx, dword [edi]
xorps xmm0, xmm0
lea eax, [ecx + ecx*2]
lea edx, [edx + eax*8]
lea eax, [ecx + 1]
mov dword [edi], eax
mov eax, dword [esp + 0x18]
movdqu xmmword [edx], xmm0
movq qword [edx + 0x10], xmm0
mov dword [edx], eax
jmp 0x472ff7
movzx eax, byte [ecx]
lea edx, [esp + 0x7c]
lea eax, [eax + eax*8]
lea edi, [ecx + eax*8]
mov ecx, dword [esp + 0x10]
call fcn.004677f0
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [edi - 0x38], eax
call fcn.004677f0
mov dword [edi - 0x3c], eax
jmp 0x472f53
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
call fcn.0045eaf0
mov ecx, dword [esp + 0x34]
mov edx, edi
call fcn.0045f690
xor edi, edi
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x50]
mov edx, edi
mov ecx, esi
push dword [esp + 0x40]
call fcn.0047c4a0
add esp, 0x20
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], 0
mov ecx, dword [esp + 0x10]
lea edx, [ebx + 0x4d]
mov al, byte [ecx + 0xf2]
mov byte [esp + 0x2b], al
mov byte [ecx + 0xf2], 0
call fcn.00431490
mov edi, eax
test edi, edi
je 0x473176
lea eax, [ebx + 0x4d]
push eax
push 0
push edi
call fcn.0056cbb0
add esp, 0xc
test edi, edi
je 0x473176
lea ecx, [edi + 0x24]
push ebx
push dword [esp + 0x30]
lea eax, [ecx + 0x28]
mov dword [edi + 0x1c], ecx
push eax
mov dword [esp + 0x2c], ecx
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], ebx
call fcn.0056a7e0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x38]
mov ecx, ebx
push 0
push 1
call fcn.0045ec20
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
push 1
mov dword [ecx + 0x14], eax
mov ecx, ebx
call fcn.0045eeb0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, dword [esp + 0x24]
mov dword [ecx + 0x18], eax
mov ecx, ebx
push 1
call fcn.0045f3b0
mov ecx, dword [esp + 0x24]
add esp, 4
cmp dword [esp + 0x30], 0
mov dword [ecx + 8], eax
je 0x47317a
mov ecx, dword [esi]
mov edx, 0x30
call fcn.00431490
mov ebx, eax
test ebx, ebx
je 0x473105
push 0x30
push 0
push ebx
call fcn.0056cbb0
add esp, 0xc
mov byte [ebx], 0x13
or eax, 0xffffffff
mov dword [ebx + 0x18], 1
mov word [ebx + 0x22], ax
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x473127
mov edx, dword [esp + 0x30]
mov ecx, eax
call fcn.0045eaf0
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.0045eaf0
jmp 0x473159
mov eax, dword [esp + 0x30]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov eax, dword [eax + 4]
and eax, 0x100
or dword [ebx + 4], eax
call fcn.0045e3a0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x473159
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00433620
add esp, 0xc
mov edx, ebx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x10]
mov ecx, ebx
push 0
push 1
call fcn.0045ec20
add esp, 8
mov dword [edi + 0xc], eax
jmp 0x47317a
mov ebx, dword [esp + 0x10]
mov al, byte [esp + 0x2b]
mov ecx, ebx
mov edx, dword [esp + 0x38]
mov byte [ebx + 0xf2], al
call fcn.0045eaf0
mov edx, dword [esp + 0x30]
mov ecx, ebx
call fcn.0045eaf0
mov edx, dword [esp + 0x48]
mov ecx, ebx
call fcn.0045f690
mov esi, dword [esp + 0x24]
test esi, esi
je 0x4731bf
mov edx, esi
mov ecx, ebx
call fcn.0047c420
mov edx, esi
mov ecx, ebx
call fcn.00431240
cmp byte [ebx + 0x40], 1
jne 0x4731e2
mov edx, edi
mov ecx, ebx
call fcn.00471d20
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.00564de8
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
cmp eax, 6
je 0x47320a
cmp eax, 9
jne 0x473201
test edx, edx
jne 0x473201
mov ecx, dword [esp + 0x20]
mov byte [ecx], 0x6a
jmp 0x473211
mov ecx, dword [esp + 0x20]
mov byte [ecx], 0x6b
jmp 0x473211
mov ecx, dword [esp + 0x20]
mov byte [ecx], 0x74
mov esi, dword [esp + 0x50]
test edx, edx
mov dword [ecx + 4], edi
mov eax, dword [esi + 0x44]
mov dword [edi + 0x14], eax
mov ecx, dword [esi + 0x44]
mov eax, dword [esp + 0x68]
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.00564de8
mov esp, ebp
pop ebp
ret