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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x4fc00c]
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 0x45422f
test edi, edi
jne 0x45422f
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.00451ab0
add esp, 0xc
test eax, eax
jne 0x4541c8
xor ecx, ecx
mov dword [esp + 0x3c], ecx
cmp dword [edi + 0x14], ecx
jle 0x453e4d
mov dword [esp + 0x74], 0x4e5e48
mov dword [esp + 0x78], 3
mov dword [esp + 0x7c], 0x4e5e44
mov dword [esp + 0x80], 3
nop
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4538bd
mov edx, dword [eax + ecx*4]
jmp 0x4538c0
mov edx, dword [edi + 0x24]
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4538de
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 0x4538e3
mov ecx, 0x4e7694
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 0x45391d
cmp byte [ecx], 0
je 0x453916
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x453910
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x5c], eax
mov edi, edx
test edx, edx
je 0x45393e
cmp byte [edx], 0
je 0x453936
nop dword [eax]
inc edi
cmp byte [edi], 0
jne 0x453930
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.0043d710
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x453976
xor edx, edx
mov ecx, ebx
call fcn.0043de20
xor edx, edx
mov ecx, ebx
call fcn.0043de20
jmp 0x45399a
mov ecx, eax
call fcn.0043d5f0
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x45399a
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.0043d710
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x4539d6
xor edx, edx
mov ecx, eax
call fcn.0043de20
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.0043de20
jmp 0x4539f6
mov ecx, ebx
call fcn.0043d5f0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x4539f6
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x74]
push 1
push eax
mov edx, 0x1b
call fcn.0043d710
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x453a2e
xor edx, edx
mov ecx, eax
call fcn.0043de20
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.0043de20
jmp 0x453a4e
mov ecx, ebx
call fcn.0043d5f0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x453a4e
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
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.0043d8b0
add esp, 0xc
mov edx, 0x4f
mov ecx, esi
push eax
call fcn.0043d8b0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, ebx
push eax
call fcn.0043da10
mov ecx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x453c5b
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.0043d710
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x453ad1
xor edx, edx
mov ecx, ebx
call fcn.0043de20
xor edx, edx
mov ecx, ebx
call fcn.0043de20
jmp 0x453af5
mov ecx, eax
call fcn.0043d5f0
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x453af5
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x7c]
push 1
push eax
mov edx, 0x1b
call fcn.0043d710
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x48], eax
test eax, eax
jne 0x453b29
xor edx, edx
mov ecx, ebx
call fcn.0043de20
xor edx, edx
mov ecx, ebx
call fcn.0043de20
jmp 0x453b4d
mov ecx, eax
call fcn.0043d5f0
mov eax, dword [esi]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x453b4d
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.0043d710
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x453b81
xor edx, edx
mov ecx, ebx
call fcn.0043de20
xor edx, edx
mov ecx, ebx
call fcn.0043de20
jmp 0x453ba5
mov ecx, eax
call fcn.0043d5f0
mov eax, dword [esi]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x453ba5
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x74]
push 1
push eax
mov edx, 0x1b
call fcn.0043d710
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x453bdd
xor edx, edx
mov ecx, eax
call fcn.0043de20
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.0043de20
jmp 0x453bfd
mov ecx, ebx
call fcn.0043d5f0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x453bfd
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
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.0043d8b0
add esp, 0x10
mov edx, 0x7a
mov ecx, esi
push eax
push 0
push dword [esp + 0x24]
push ebx
call fcn.0043d8b0
add esp, 0xc
mov edx, 0x49
mov ecx, esi
push eax
call fcn.0043d8b0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ecx, ebx
push eax
call fcn.0043da10
mov ecx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
cmp eax, 6
je 0x453e33
cmp eax, 9
jne 0x453d4c
test ecx, ecx
je 0x453e33
cmp eax, eax
jne 0x453d4c
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1b
call fcn.0043d710
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x453cbd
xor edx, edx
mov ecx, eax
call fcn.0043de20
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.0043de20
jmp 0x453cdd
mov ecx, ebx
call fcn.0043d5f0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x453cdd
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x7c]
push 1
push eax
mov edx, 0x1b
call fcn.0043d710
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x453d15
xor edx, edx
mov ecx, eax
call fcn.0043de20
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.0043de20
jmp 0x453d35
mov ecx, ebx
call fcn.0043d5f0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x453d35
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
add esp, 0xc
push 0
push dword [esp + 0x1c]
mov edx, 0x7a
mov ecx, esi
push ebx
call fcn.0043d8b0
mov ebx, eax
jmp 0x453dca
cmp eax, 8
jne 0x453d78
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 0x453d78
push 0
push 0
mov ecx, ebx
call fcn.0043df40
add esp, 8
mov ebx, eax
jmp 0x453dcd
mov ecx, dword [esi]
mov edx, 0x65
push 1
push 0
call fcn.0043d710
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x453dad
xor edx, edx
mov ecx, eax
call fcn.0043de20
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.0043de20
jmp 0x453dcd
mov ecx, ebx
call fcn.0043d5f0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x453dcd
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
add esp, 0xc
mov edx, dword [esp + 0x44]
mov ecx, esi
push ebx
call fcn.0043e970
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
je 0x453e33
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 0x453e01
xor ebx, ebx
jmp 0x453e30
mov eax, edi
add eax, 1
adc ecx, ecx
push ecx
mov ecx, dword [esi]
push eax
call fcn.0040e360
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x453e2c
push edi
push dword [esp + 0x68]
push ebx
call sub.VCRUNTIME140.dll_memcpy
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 0x4538b0
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x453e9c
test ebx, ebx
je 0x453e93
cmp dword [ebx + 0x208], 0
je 0x453e6d
mov edx, ecx
mov ecx, ebx
call fcn.0040e0a0
jmp 0x453e9c
cmp ecx, dword [ebx + 0x114]
jb 0x453e93
cmp ecx, dword [ebx + 0x118]
jae 0x453e93
mov eax, dword [ebx + 0x110]
mov dword [ecx], eax
dec dword [ebx + 0xfc]
mov dword [ebx + 0x110], ecx
jmp 0x453e9c
push ecx
call fcn.0040e000
add esp, 4
mov eax, dword [edi]
mov eax, dword [eax]
mov ebx, eax
mov dword [esp + 0x14], eax
test eax, eax
je 0x453ebe
cmp byte [eax], 0
je 0x453eb6
nop
inc ebx
cmp byte [ebx], 0
jne 0x453eb0
sub ebx, eax
and ebx, 0x3fffffff
cmp dword [esp + 0x50], 6
jne 0x454041
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 0x453ee1
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.0043d710
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
je 0x453f1b
mov byte [eax + 1], 2
push 0
push 0x58
mov ecx, edi
call fcn.0040e360
mov edi, eax
add esp, 8
test edi, edi
je 0x453f6c
push 0x58
push 0
push edi
call sub.VCRUNTIME140.dll_memset
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.0044b850
add esp, 8
mov ecx, eax
cmp byte [edi + 0x40], 0
mov dword [esp + 0x28], ecx
je 0x453fce
mov edx, ecx
mov ecx, edi
call fcn.0044ba90
mov dword [esp + 0x28], 0
mov eax, dword [esi]
mov ecx, eax
push 0
push 8
mov dword [esp + 0x34], eax
call fcn.0040e360
mov edi, eax
add esp, 8
test edi, edi
je 0x453ffb
mov ecx, dword [esp + 0x2c]
xorps xmm0, xmm0
push 0
push 0x18
movq qword [edi], xmm0
call fcn.0040e360
mov edx, eax
add esp, 8
mov dword [edi + 4], edx
test edx, edx
je 0x453ffb
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 0x454015
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.00447830
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [edi - 0x40], eax
call fcn.00447830
mov dword [edi - 0x44], eax
jmp 0x453f74
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
call fcn.0043de20
mov ecx, dword [esp + 0x2c]
mov edx, edi
call fcn.0043eba0
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.0045cf60
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.0040e360
mov edi, eax
add esp, 8
test edi, edi
je 0x45417f
lea eax, [ebx + 0x4d]
push eax
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test edi, edi
je 0x45417f
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 sub.VCRUNTIME140.dll_memcpy
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, ebx
push 0
push 1
call fcn.0043df40
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
push 1
mov dword [ecx + 0x14], eax
mov ecx, ebx
call fcn.0043e300
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.0043e830
mov ecx, dword [esp + 0x28]
add esp, 4
cmp dword [esp + 0x20], 0
mov dword [ecx + 8], eax
je 0x454183
mov ecx, dword [esi]
mov edx, 0x13
push 1
push 0
call fcn.0043d710
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x454130
mov edx, dword [esp + 0x20]
mov ecx, eax
call fcn.0043de20
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.0043de20
jmp 0x454162
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.0043d5f0
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x454162
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00410d10
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.0043df40
add esp, 8
mov dword [edi + 0xc], eax
jmp 0x454183
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.0043de20
mov edx, dword [esp + 0x20]
mov ecx, ebx
call fcn.0043de20
mov edx, dword [esp + 0x44]
mov ecx, ebx
call fcn.0043eba0
mov edx, dword [esp + 0x4c]
mov ecx, ebx
call fcn.0045d0f0
cmp byte [ebx + 0x40], 1
jne 0x4541dc
mov edx, edi
mov ecx, ebx
call fcn.00452d10
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004bde8e
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x34]
cmp eax, 6
je 0x454204
cmp eax, 9
jne 0x4541fb
test edx, edx
jne 0x4541fb
mov ecx, dword [esp + 0x24]
mov byte [ecx], 0x6d
jmp 0x45420b
mov ecx, dword [esp + 0x24]
mov byte [ecx], 0x6e
jmp 0x45420b
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.004bde8e
mov esp, ebp
pop ebp
ret