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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x5c2b80]
xor eax, esp
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esp + 0x40], edx
mov edx, dword [ebp + 0xc]
test edx, edx
push ebx
push esi
setne al
mov dword [esp + 0x38], edx
mov esi, ecx
mov ecx, dword [ebp + 8]
push edi
mov dword [esp + 0x18], 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 + 0x78], eax
test edx, edx
je 0x4c5b38
test edi, edi
jne 0x4c5b38
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x60]
mov dword [esp + 0x60], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], edi
mov edi, ecx
push eax
push edi
mov ecx, esi
call fcn.004c2ed0
add esp, 0xc
test eax, eax
jne 0x4c5ad1
xor ecx, ecx
mov dword [esp + 0x64], ecx
cmp dword [edi + 0x14], ecx
jle 0x4c56d9
mov dword [esp + 0x68], 0x595e58
mov dword [esp + 0x6c], 3
mov dword [esp + 0x70], 0x595e54
mov dword [esp + 0x74], 3
jmp 0x4c5120
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4c512d
mov edx, dword [eax + ecx*4]
jmp 0x4c5130
mov edx, dword [edi + 0x24]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4c514e
mov eax, dword [eax + 4]
movsx eax, word [eax + ecx*2]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ecx*8]
jmp 0x4c5153
mov ecx, 0x5976b4
mov eax, dword [edi]
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 + 0x60], edx
mov dword [esp + 0x7c], edx
test ecx, ecx
je 0x4c518d
cmp byte [ecx], 0
je 0x4c5186
lea esp, [esp]
inc eax
cmp byte [eax], 0
jne 0x4c5180
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x58], eax
mov ebx, edx
test edx, edx
je 0x4c51ae
cmp byte [edx], 0
je 0x4c51a6
lea esp, [esp]
inc ebx
cmp byte [ebx], 0
jne 0x4c51a0
sub ebx, edx
and ebx, 0x3fffffff
mov ecx, dword [esi]
lea eax, [esp + 0x7c]
push 1
push eax
mov edx, 0x1b
mov dword [esp + 0x88], ebx
call fcn.004ae460
mov edi, dword [esi]
add esp, 8
mov dword [esp + 0x40], eax
test eax, eax
jne 0x4c51e9
xor edx, edx
mov ecx, edi
call fcn.004aeb80
xor edx, edx
mov ecx, edi
call fcn.004aeb80
jmp 0x4c520d
mov ecx, eax
call fcn.004ae340
mov eax, dword [esi]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x4c520d
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1b
call fcn.004ae460
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x48], edi
mov dword [esp + 0x1c], eax
test edi, edi
jne 0x4c5249
xor edx, edx
mov ecx, eax
call fcn.004aeb80
mov ecx, dword [esp + 0x1c]
xor edx, edx
call fcn.004aeb80
jmp 0x4c5269
mov ecx, edi
call fcn.004ae340
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x4c5269
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x68]
push 1
push eax
mov edx, 0x1b
call fcn.004ae460
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x1c], eax
test edi, edi
jne 0x4c52a1
xor edx, edx
mov ecx, eax
call fcn.004aeb80
mov ecx, dword [esp + 0x1c]
xor edx, edx
call fcn.004aeb80
jmp 0x4c52c1
mov ecx, edi
call fcn.004ae340
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x4c52c1
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
push 0
push dword [esp + 0x44]
mov edx, 0x7a
mov ecx, esi
push 0
push dword [esp + 0x54]
push edi
call fcn.004ae600
add esp, 0xc
mov edx, 0x4f
mov ecx, esi
push eax
call fcn.004ae600
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x38]
mov ecx, edi
push eax
call fcn.004ae770
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x4c54ce
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1b
call fcn.004ae460
mov edi, dword [esi]
add esp, 8
mov dword [esp + 0x40], eax
test eax, eax
jne 0x4c5344
xor edx, edx
mov ecx, edi
call fcn.004aeb80
xor edx, edx
mov ecx, edi
call fcn.004aeb80
jmp 0x4c5368
mov ecx, eax
call fcn.004ae340
mov eax, dword [esi]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x4c5368
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x70]
push 1
push eax
mov edx, 0x1b
call fcn.004ae460
mov edi, dword [esi]
add esp, 8
mov dword [esp + 0x48], eax
test eax, eax
jne 0x4c539c
xor edx, edx
mov ecx, edi
call fcn.004aeb80
xor edx, edx
mov ecx, edi
call fcn.004aeb80
jmp 0x4c53c0
mov ecx, eax
call fcn.004ae340
mov eax, dword [esi]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x4c53c0
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1b
call fcn.004ae460
mov edi, dword [esi]
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x4c53f4
xor edx, edx
mov ecx, edi
call fcn.004aeb80
xor edx, edx
mov ecx, edi
call fcn.004aeb80
jmp 0x4c5418
mov ecx, eax
call fcn.004ae340
mov eax, dword [esi]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0x64]
cmp dword [ecx + 0x18], eax
jle 0x4c5418
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x68]
push 1
push eax
mov edx, 0x1b
call fcn.004ae460
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x28], eax
test edi, edi
jne 0x4c5450
xor edx, edx
mov ecx, eax
call fcn.004aeb80
mov ecx, dword [esp + 0x28]
xor edx, edx
call fcn.004aeb80
jmp 0x4c5470
mov ecx, edi
call fcn.004ae340
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x4c5470
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
push 0
push ecx
push 0
push dword [esp + 0x4c]
mov edx, 0x7a
mov ecx, esi
push dword [esp + 0x58]
call fcn.004ae600
add esp, 0x10
mov edx, 0x7a
mov ecx, esi
push eax
push 0
push dword [esp + 0x28]
push edi
call fcn.004ae600
add esp, 0xc
mov edx, 0x49
mov ecx, esi
push eax
call fcn.004ae600
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x2c]
mov ecx, edi
push eax
call fcn.004ae770
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x50]
cmp eax, 6
je 0x4c56bf
cmp eax, 9
jne 0x4c55ba
test ecx, ecx
je 0x4c56bf
mov ecx, dword [esi]
lea eax, [esp + 0x54]
push 1
push eax
mov edx, 0x1b
call fcn.004ae460
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], eax
test edi, edi
jne 0x4c5528
xor edx, edx
mov ecx, eax
call fcn.004aeb80
mov ecx, dword [esp + 0x28]
xor edx, edx
call fcn.004aeb80
jmp 0x4c5548
mov ecx, edi
call fcn.004ae340
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x4c5548
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x70]
push 1
push eax
mov edx, 0x1b
call fcn.004ae460
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x28], eax
test edi, edi
jne 0x4c5580
xor edx, edx
mov ecx, eax
call fcn.004aeb80
mov ecx, dword [esp + 0x28]
xor edx, edx
call fcn.004aeb80
jmp 0x4c55a0
mov ecx, edi
call fcn.004ae340
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x4c55a0
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
push 0
push dword [esp + 0x20]
mov edx, 0x7a
mov ecx, esi
push edi
call fcn.004ae600
mov edi, eax
jmp 0x4c5653
push 0
cmp eax, 8
jne 0x4c55e6
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov edx, dword [eax + edx + 4]
test edx, edx
je 0x4c55e6
push 0
mov ecx, edi
call fcn.004aecb0
add esp, 8
mov edi, eax
jmp 0x4c5656
mov ecx, dword [esi]
push 0x30
call fcn.0047d250
mov edi, eax
add esp, 8
test edi, edi
je 0x4c5616
push 0x30
push 0
push edi
call fcn.0052ebd0
add esp, 0xc
mov byte [edi], 0x65
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 0x4c5636
xor edx, edx
mov ecx, eax
call fcn.004aeb80
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.004aeb80
jmp 0x4c5656
mov ecx, edi
call fcn.004ae340
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [edi + 0x18], eax
jle 0x4c5656
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
mov edx, dword [esp + 0x44]
mov ecx, esi
push edi
call fcn.004af720
mov edx, eax
add esp, 4
mov dword [esp + 0x44], edx
test edx, edx
je 0x4c56bf
mov eax, dword [edx]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 4]
lea eax, [eax + ecx*8]
xor ecx, ecx
add eax, 0xffffffe8
mov dword [esp + 0x14], eax
cmp dword [esp + 0x60], ecx
jne 0x4c568d
xor edi, edi
jmp 0x4c56bc
mov eax, ebx
add eax, 1
adc ecx, ecx
push ecx
mov ecx, dword [esi]
push eax
call fcn.0047d250
mov edi, eax
add esp, 8
test edi, edi
je 0x4c56b8
push ebx
push dword [esp + 0x64]
push edi
call fcn.0052e420
add esp, 0xc
mov byte [ebx + edi], 0
mov eax, dword [esp + 0x14]
mov dword [eax + 4], edi
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x64], ecx
cmp ecx, dword [edi + 0x14]
jl 0x4c5120
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4c5728
test ebx, ebx
je 0x4c571f
cmp dword [ebx + 0x208], 0
je 0x4c56f9
mov edx, ecx
mov ecx, ebx
call fcn.0047cf90
jmp 0x4c5728
cmp ecx, dword [ebx + 0x114]
jb 0x4c571f
cmp ecx, dword [ebx + 0x118]
jae 0x4c571f
mov eax, dword [ebx + 0x110]
mov dword [ecx], eax
dec dword [ebx + 0xfc]
mov dword [ebx + 0x110], ecx
jmp 0x4c5728
push ecx
call fcn.0047cef0
add esp, 4
mov eax, dword [edi]
mov eax, dword [eax]
mov ebx, eax
mov dword [esp + 0x28], eax
test eax, eax
je 0x4c574e
cmp byte [eax], 0
je 0x4c5746
jmp 0x4c5740
inc ebx
cmp byte [ebx], 0
jne 0x4c5740
sub ebx, eax
and ebx, 0x3fffffff
cmp dword [esp + 0x50], 6
jne 0x4c5928
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 0x4c5770
mov ecx, dword [esp + 0x10]
sub edi, str.FOREIGN_KEY_constraint_failed
and edi, 0x3fffffff
push 0
lea eax, [edi + 0x31]
push eax
mov dword [esp + 0x1c], eax
call fcn.0047d250
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x4c57ff
push dword [esp + 0x14]
push 0
push eax
call fcn.0052ebd0
mov ecx, dword [esp + 0x24]
or eax, 0xffffffff
add esp, 0xc
mov word [ecx + 0x22], ax
lea eax, [edi + 1]
mov byte [ecx], 0x39
test eax, eax
jne 0x4c57d0
or dword [ecx + 4], 0x400
mov dword [ecx + 8], eax
jmp 0x4c57f4
lea eax, [ecx + 0x30]
mov dword [ecx + 8], eax
test edi, edi
je 0x4c57ed
push edi
push str.FOREIGN_KEY_constraint_failed
push eax
call fcn.0052e420
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]
push 0
push 0x58
call fcn.0047d250
mov edi, eax
add esp, 8
test edi, edi
je 0x4c5852
push 0x58
push 0
push edi
call fcn.0052ebd0
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.004bca50
add esp, 8
mov ecx, eax
cmp byte [edi + 0x41], 0
mov dword [esp + 0x24], ecx
je 0x4c58b5
mov edx, ecx
mov ecx, edi
call fcn.004bcca0
mov dword [esp + 0x24], 0
mov eax, dword [esi]
mov ecx, eax
push 0
push 8
mov dword [esp + 0x28], eax
call fcn.0047d250
mov edi, eax
add esp, 8
test edi, edi
je 0x4c58e2
mov ecx, dword [esp + 0x20]
xorps xmm0, xmm0
push 0
push 0x18
movq qword [edi], xmm0
call fcn.0047d250
mov edx, eax
add esp, 8
mov dword [edi + 4], edx
test edx, edx
je 0x4c58e2
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 0x4c58fc
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.004b8700
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [edi - 0x40], eax
call fcn.004b8700
mov dword [edi - 0x44], eax
jmp 0x4c585a
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
call fcn.004aeb80
mov ecx, dword [esp + 0x20]
mov edx, edi
call fcn.004af950
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.004ced60
add esp, 0x20
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], 0
mov ecx, dword [esp + 0x10]
push 0
mov al, byte [ecx + 0xfa]
mov byte [esp + 0x3b], al
lea eax, [ebx + 0x4d]
push eax
mov byte [ecx + 0xfa], 0
call fcn.0047d250
mov edi, eax
add esp, 8
test edi, edi
je 0x4c5a83
lea eax, [ebx + 0x4d]
push eax
push 0
push edi
call fcn.0052ebd0
add esp, 0xc
test edi, edi
je 0x4c5a83
lea ecx, [edi + 0x24]
push ebx
push dword [esp + 0x2c]
lea eax, [ecx + 0x28]
mov dword [edi + 0x1c], ecx
push eax
mov dword [esp + 0x3c], ecx
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], ebx
call fcn.0052e420
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x38]
mov ecx, ebx
push 0
push 1
call fcn.004aecb0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x4c]
push 1
mov dword [ecx + 0x14], eax
mov ecx, ebx
call fcn.004af070
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov edx, dword [esp + 0x24]
mov dword [ecx + 0x18], eax
mov ecx, ebx
push 1
call fcn.004af5e0
mov ecx, dword [esp + 0x34]
add esp, 4
cmp dword [esp + 0x2c], 0
mov dword [ecx + 8], eax
je 0x4c5a87
mov ecx, dword [esi]
push 0
push 0x30
call fcn.0047d250
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4c5a12
push 0x30
push 0
push ebx
call fcn.0052ebd0
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 0x4c5a34
mov edx, dword [esp + 0x2c]
mov ecx, eax
call fcn.004aeb80
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.004aeb80
jmp 0x4c5a66
mov eax, dword [esp + 0x2c]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov eax, dword [eax + 4]
and eax, 0x100
or dword [ebx + 4], eax
call fcn.004ae340
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
cmp dword [ebx + 0x18], eax
jle 0x4c5a66
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0047fd00
add esp, 0xc
mov edx, ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x10]
mov ecx, ebx
push 0
push 1
call fcn.004aecb0
add esp, 8
mov dword [edi + 0xc], eax
jmp 0x4c5a87
mov ebx, dword [esp + 0x10]
mov al, byte [esp + 0x37]
mov ecx, ebx
mov edx, dword [esp + 0x38]
mov byte [ebx + 0xfa], al
call fcn.004aeb80
mov edx, dword [esp + 0x2c]
mov ecx, ebx
call fcn.004aeb80
mov edx, dword [esp + 0x44]
mov ecx, ebx
call fcn.004af950
mov edx, dword [esp + 0x24]
mov ecx, ebx
push 1
call fcn.004cec80
add esp, 4
cmp byte [ebx + 0x41], 1
jne 0x4c5ae5
mov edx, edi
mov ecx, ebx
call fcn.004c4530
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.0052ab62
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x3c]
cmp eax, 6
je 0x4c5b0d
cmp eax, 9
jne 0x4c5b04
test edx, edx
jne 0x4c5b04
mov ecx, dword [esp + 0x30]
mov byte [ecx], 0x6d
jmp 0x4c5b14
mov ecx, dword [esp + 0x30]
mov byte [ecx], 0x6e
jmp 0x4c5b14
mov ecx, dword [esp + 0x30]
mov byte [ecx], 0x77
mov dword [ecx + 4], edi
test edx, edx
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x44]
mov dword [edi + 0x14], eax
mov ecx, dword [ecx + 0x44]
mov eax, dword [esp + 0x78]
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.0052ab62
mov esp, ebp
pop ebp
ret