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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x7cdffc]
xor eax, esp
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0xc]
test edx, edx
push ebx
push esi
setne al
mov dword [esp + 0x30], edx
mov esi, ecx
mov ecx, dword [ebp + 8]
push edi
mov dword [esp + 0x28], ecx
movzx edx, byte [ecx + eax + 0x19]
add eax, 7
mov ebx, dword [esi]
lea eax, [ecx + eax*4]
mov edi, dword [eax]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x70], eax
test edx, edx
je 0x4fafc4
test edi, edi
jne 0x4fafc4
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x64]
mov dword [esp + 0x64], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x24], edi
mov edi, ecx
push eax
push edi
mov ecx, esi
call fcn.004f8910
add esp, 0xc
test eax, eax
jne 0x4faf5d
xor ecx, ecx
mov dword [esp + 0x3c], ecx
cmp dword [edi + 0x14], ecx
jle 0x4fabdd
mov dword [esp + 0x74], 0x792f80
mov dword [esp + 0x78], 3
mov dword [esp + 0x7c], 0x792f7c
mov dword [esp + 0x80], 3
nop
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4fa64d
mov edx, dword [eax + ecx*4]
jmp 0x4fa650
mov edx, dword [edi + 0x24]
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4fa66e
mov eax, dword [eax + 4]
movsx eax, word [eax + ecx*2]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ecx*8]
jmp 0x4fa673
mov ecx, 0x794808
mov eax, dword [edi]
lea edx, [edx + edx*2]
shl edx, 3
mov dword [esp + 0x14], edx
mov dword [esp + 0x58], ecx
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
mov eax, ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edx
test ecx, ecx
je 0x4fa6ad
cmp byte [ecx], 0
je 0x4fa6a6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4fa6a0
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x5c], eax
mov edi, edx
test edx, edx
je 0x4fa6ce
cmp byte [edx], 0
je 0x4fa6c6
nop dword [eax]
inc edi
cmp byte [edi], 0
jne 0x4fa6c0
sub edi, edx
and edi, 0x3fffffff
mov ecx, dword [esi]
lea eax, [esp + 0x68]
push 1
push eax
mov edx, 0x1b
mov dword [esp + 0x74], edi
call fcn.004e46f0
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4fa706
xor edx, edx
mov ecx, ebx
call fcn.004e4e10
xor edx, edx
mov ecx, ebx
call fcn.004e4e10
jmp 0x4fa72a
mov ecx, eax
call fcn.004e45d0
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x4fa72a
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.004e46f0
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x4fa766
xor edx, edx
mov ecx, eax
call fcn.004e4e10
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.004e4e10
jmp 0x4fa786
mov ecx, ebx
call fcn.004e45d0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x4fa786
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x74]
push 1
push eax
mov edx, 0x1b
call fcn.004e46f0
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x4fa7be
xor edx, edx
mov ecx, eax
call fcn.004e4e10
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.004e4e10
jmp 0x4fa7de
mov ecx, ebx
call fcn.004e45d0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x4fa7de
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
push 0
push dword [esp + 0x3c]
mov edx, 0x7a
mov ecx, esi
push 0
push dword [esp + 0x54]
push ebx
call fcn.004e4890
add esp, 0xc
mov edx, 0x4f
mov ecx, esi
push eax
call fcn.004e4890
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, ebx
push eax
call fcn.004e4a00
mov ecx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x4fa9eb
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.004e46f0
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4fa861
xor edx, edx
mov ecx, ebx
call fcn.004e4e10
xor edx, edx
mov ecx, ebx
call fcn.004e4e10
jmp 0x4fa885
mov ecx, eax
call fcn.004e45d0
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x4fa885
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x7c]
push 1
push eax
mov edx, 0x1b
call fcn.004e46f0
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x48], eax
test eax, eax
jne 0x4fa8b9
xor edx, edx
mov ecx, ebx
call fcn.004e4e10
xor edx, edx
mov ecx, ebx
call fcn.004e4e10
jmp 0x4fa8dd
mov ecx, eax
call fcn.004e45d0
mov eax, dword [esi]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x4fa8dd
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.004e46f0
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4fa911
xor edx, edx
mov ecx, ebx
call fcn.004e4e10
xor edx, edx
mov ecx, ebx
call fcn.004e4e10
jmp 0x4fa935
mov ecx, eax
call fcn.004e45d0
mov eax, dword [esi]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x4fa935
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x74]
push 1
push eax
mov edx, 0x1b
call fcn.004e46f0
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x4fa96d
xor edx, edx
mov ecx, eax
call fcn.004e4e10
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.004e4e10
jmp 0x4fa98d
mov ecx, ebx
call fcn.004e45d0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x4fa98d
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
push 0
push ecx
push 0
push dword [esp + 0x44]
mov edx, 0x7a
mov ecx, esi
push dword [esp + 0x58]
call fcn.004e4890
add esp, 0x10
mov edx, 0x7a
mov ecx, esi
push eax
push 0
push dword [esp + 0x24]
push ebx
call fcn.004e4890
add esp, 0xc
mov edx, 0x49
mov ecx, esi
push eax
call fcn.004e4890
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ecx, ebx
push eax
call fcn.004e4a00
mov ecx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
cmp eax, 6
je 0x4fabc3
cmp eax, 9
jne 0x4faadc
test ecx, ecx
je 0x4fabc3
cmp eax, eax
jne 0x4faadc
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.004e46f0
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x4faa4d
xor edx, edx
mov ecx, eax
call fcn.004e4e10
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.004e4e10
jmp 0x4faa6d
mov ecx, ebx
call fcn.004e45d0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x4faa6d
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x7c]
push 1
push eax
mov edx, 0x1b
call fcn.004e46f0
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x4faaa5
xor edx, edx
mov ecx, eax
call fcn.004e4e10
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.004e4e10
jmp 0x4faac5
mov ecx, ebx
call fcn.004e45d0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x4faac5
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
push 0
push dword [esp + 0x1c]
mov edx, 0x7a
mov ecx, esi
push ebx
call fcn.004e4890
mov ebx, eax
jmp 0x4fab5a
cmp eax, 8
jne 0x4fab08
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov edx, dword [eax + edx + 4]
test edx, edx
je 0x4fab08
push 0
push 0
mov ecx, ebx
call fcn.004e4f40
add esp, 8
mov ebx, eax
jmp 0x4fab5d
mov ecx, dword [esi]
mov edx, 0x65
push 1
push 0
call fcn.004e46f0
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4fab3d
xor edx, edx
mov ecx, eax
call fcn.004e4e10
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.004e4e10
jmp 0x4fab5d
mov ecx, ebx
call fcn.004e45d0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x4fab5d
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
mov edx, dword [esp + 0x44]
mov ecx, esi
push ebx
call fcn.004e5970
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
je 0x4fabc3
mov eax, dword [edx]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 4]
lea eax, [eax + ecx*8]
xor ecx, ecx
mov dword [esp + 0x14], eax
cmp dword [esp + 0x64], ecx
jne 0x4fab91
xor ebx, ebx
jmp 0x4fabc0
mov eax, edi
add eax, 1
adc ecx, ecx
push ecx
mov ecx, dword [esi]
push eax
call fcn.004b49d0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4fabbc
push edi
push dword [esp + 0x68]
push ebx
call fcn.006e6940
add esp, 0xc
mov byte [edi + ebx], 0
mov eax, dword [esp + 0x14]
mov dword [eax - 0x14], ebx
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, dword [edi + 0x14]
jl 0x4fa640
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4fac2c
test ebx, ebx
je 0x4fac23
cmp dword [ebx + 0x208], 0
je 0x4fabfd
mov edx, ecx
mov ecx, ebx
call fcn.004b4710
jmp 0x4fac2c
cmp ecx, dword [ebx + 0x114]
jb 0x4fac23
cmp ecx, dword [ebx + 0x118]
jae 0x4fac23
mov eax, dword [ebx + 0x110]
mov dword [ecx], eax
dec dword [ebx + 0xfc]
mov dword [ebx + 0x110], ecx
jmp 0x4fac2c
push ecx
call fcn.004b4670
add esp, 4
mov eax, dword [edi]
mov eax, dword [eax]
mov ebx, eax
mov dword [esp + 0x14], eax
test eax, eax
je 0x4fac4e
cmp byte [eax], 0
je 0x4fac46
nop
inc ebx
cmp byte [ebx], 0
jne 0x4fac40
sub ebx, eax
and ebx, 0x3fffffff
cmp dword [esp + 0x50], 6
jne 0x4fadd1
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
inc eax
cmp byte [eax], 0
jne 0x4fac71
mov edi, dword [esp + 0x10]
sub eax, str.FOREIGN_KEY_constraint_failed
and eax, 0x3fffffff
mov edx, 0x39
mov dword [esp + 0x6c], eax
mov ecx, edi
lea eax, [esp + 0x68]
push 0
push eax
call fcn.004e46f0
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4facab
mov byte [eax + 1], 2
push 0
push 0x58
mov ecx, edi
call fcn.004b49d0
mov edi, eax
add esp, 8
test edi, edi
je 0x4facfc
push 0x58
push 0
push edi
call fcn.006e6ec0
add esp, 0xc
mov dword [edi + 4], 1
mov edx, edi
push dword [edi]
mov edi, dword [esp + 0x14]
mov ecx, edi
push 1
call fcn.004f2720
add esp, 8
mov ecx, eax
cmp byte [edi + 0x41], 0
mov dword [esp + 0x28], ecx
je 0x4fad5e
mov edx, ecx
mov ecx, edi
call fcn.004f2960
mov dword [esp + 0x28], 0
mov eax, dword [esi]
mov ecx, eax
push 0
push 8
mov dword [esp + 0x34], eax
call fcn.004b49d0
mov edi, eax
add esp, 8
test edi, edi
je 0x4fad8b
mov ecx, dword [esp + 0x2c]
xorps xmm0, xmm0
push 0
push 0x18
movq qword [edi], xmm0
call fcn.004b49d0
mov edx, eax
add esp, 8
mov dword [edi + 4], edx
test edx, edx
je 0x4fad8b
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 + 0x3c]
movups xmmword [edx], xmm0
movq qword [edx + 0x10], xmm0
mov dword [edx], eax
jmp 0x4fada5
mov eax, dword [ecx]
lea edx, [esp + 0x7c]
lea edi, [eax + eax*4]
shl edi, 4
add edi, ecx
mov ecx, dword [esp + 0x10]
call fcn.004ee8b0
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [edi - 0x40], eax
call fcn.004ee8b0
mov dword [edi - 0x44], eax
jmp 0x4fad04
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
call fcn.004e4e10
mov ecx, dword [esp + 0x2c]
mov edx, edi
call fcn.004e5ba0
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 + 0x44]
call fcn.00503d00
add esp, 0x20
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0x10]
push 0
mov al, byte [ecx + 0xfa]
mov byte [esp + 0x23], al
lea eax, [ebx + 0x4d]
push eax
mov byte [ecx + 0xfa], 0
call fcn.004b49d0
mov edi, eax
add esp, 8
test edi, edi
je 0x4faf0f
lea eax, [ebx + 0x4d]
push eax
push 0
push edi
call fcn.006e6ec0
add esp, 0xc
test edi, edi
je 0x4faf0f
lea ecx, [edi + 0x24]
push ebx
push dword [esp + 0x18]
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 fcn.006e6940
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, ebx
push 0
push 1
call fcn.004e4f40
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
push 1
mov dword [ecx + 0x14], eax
mov ecx, ebx
call fcn.004e5300
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, dword [esp + 0x4c]
mov dword [ecx + 0x18], eax
mov ecx, ebx
push 1
call fcn.004e5830
mov ecx, dword [esp + 0x28]
add esp, 4
cmp dword [esp + 0x20], 0
mov dword [ecx + 8], eax
je 0x4faf13
mov ecx, dword [esi]
mov edx, 0x13
push 1
push 0
call fcn.004e46f0
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4faec0
mov edx, dword [esp + 0x20]
mov ecx, eax
call fcn.004e4e10
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.004e4e10
jmp 0x4faef2
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov eax, dword [eax + 4]
and eax, 0x100
or dword [ebx + 4], eax
call fcn.004e45d0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x4faef2
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.004b73f0
add esp, 0xc
mov edx, ebx
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
mov ecx, ebx
push 0
push 1
call fcn.004e4f40
add esp, 8
mov dword [edi + 0xc], eax
jmp 0x4faf13
mov ebx, dword [esp + 0x10]
mov al, byte [esp + 0x1f]
mov ecx, ebx
mov edx, dword [esp + 0x30]
mov byte [ebx + 0xfa], al
call fcn.004e4e10
mov edx, dword [esp + 0x20]
mov ecx, ebx
call fcn.004e4e10
mov edx, dword [esp + 0x44]
mov ecx, ebx
call fcn.004e5ba0
mov edx, dword [esp + 0x4c]
mov ecx, ebx
push 1
call fcn.00503c20
add esp, 4
cmp byte [ebx + 0x41], 1
jne 0x4faf71
mov edx, edi
mov ecx, ebx
call fcn.004f9ac0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.006a7b19
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x34]
cmp eax, 6
je 0x4faf99
cmp eax, 9
jne 0x4faf90
test edx, edx
jne 0x4faf90
mov ecx, dword [esp + 0x24]
mov byte [ecx], 0x6d
jmp 0x4fafa0
mov ecx, dword [esp + 0x24]
mov byte [ecx], 0x6e
jmp 0x4fafa0
mov ecx, dword [esp + 0x24]
mov byte [ecx], 0x77
mov dword [ecx + 4], edi
test edx, edx
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x44]
mov dword [edi + 0x14], eax
mov ecx, dword [ecx + 0x44]
mov eax, dword [esp + 0x70]
mov dword [edi + 0x18], ecx
setne cl
add cl, 0x6d
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.006a7b19
mov esp, ebp
pop ebp
ret