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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [esp + 0x2c], edx
push edi
mov eax, dword [esi]
mov dword [esp + 0x14], eax
xor eax, eax
cmp dword [ebp + 0xc], eax
setne al
mov cl, byte [eax + ebx + 0x19]
add eax, 7
mov edi, dword [ebx + eax*4]
lea eax, [ebx + eax*4]
mov byte [esp + 0x12], cl
mov dword [esp + 0x54], eax
test cl, cl
je 0x44779c
test edi, edi
jne 0x44779c
lea eax, [esp + 0x28]
mov dword [esp + 0x34], edi
push eax
lea eax, [esp + 0x38]
mov dword [esp + 0x2c], edi
push eax
mov dword [esp + 0x24], edi
mov ecx, esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x20], edi
mov edi, edx
push ebx
call fcn.00445520
add esp, 0xc
test eax, eax
jne 0x447744
xor ecx, ecx
mov dword [esp + 0x48], ecx
cmp dword [ebx + 0x14], ecx
jle 0x4473d4
mov dword [esp + 0x60], 0x4935d4
mov dword [esp + 0x64], 3
mov dword [esp + 0x68], 0x4935d0
mov dword [esp + 0x6c], 3
mov eax, dword [esp + 0x28]
test eax, eax
je 0x446e5f
mov edx, dword [eax + ecx*4]
jmp 0x446e62
mov edx, dword [ebx + 0x24]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x446e7b
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + ecx*8]
jmp 0x446e80
mov ecx, 0x494c30
mov eax, dword [ebx]
lea edx, [edx + edx*2]
shl edx, 3
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], ecx
mov eax, dword [eax + 0xc]
mov edx, dword [edx + eax]
mov eax, ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x70], edx
test eax, eax
je 0x446ebd
cmp byte [ecx], 0
je 0x446eb6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x446eb0
sub eax, ecx
and eax, 0x3fffffff
mov edi, edx
mov dword [esp + 0x5c], eax
test edi, edi
je 0x446ede
cmp byte [edx], 0
je 0x446ed6
nop dword [eax]
inc edi
cmp byte [edi], 0
jne 0x446ed0
sub edi, edx
and edi, 0x3fffffff
mov ecx, dword [esi]
lea eax, [esp + 0x70]
push 1
push eax
mov edx, 0x1a
mov dword [esp + 0x7c], edi
call fcn.00434a20
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x446f16
xor edx, edx
mov ecx, ebx
call fcn.00435120
xor edx, edx
mov ecx, ebx
call fcn.00435120
jmp 0x446f3a
mov ecx, eax
call fcn.00434980
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
cmp dword [ecx + 0x2c], eax
jle 0x446f3a
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1a
call fcn.00434a20
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x446f76
xor edx, edx
mov ecx, eax
call fcn.00435120
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.00435120
jmp 0x446f96
mov ecx, ebx
call fcn.00434980
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
cmp dword [ebx + 0x2c], eax
jle 0x446f96
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x60]
push 1
push eax
mov edx, 0x1a
call fcn.00434a20
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x40], eax
test ebx, ebx
jne 0x446fce
xor edx, edx
mov ecx, eax
call fcn.00435120
mov ecx, dword [esp + 0x40]
xor edx, edx
call fcn.00435120
jmp 0x446fee
mov ecx, ebx
call fcn.00434980
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
cmp dword [ebx + 0x2c], eax
jle 0x446fee
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
push 0
push dword [esp + 0x3c]
mov edx, 0x76
mov ecx, esi
push 0
push dword [esp + 0x48]
push ebx
call fcn.00434c60
add esp, 0xc
mov edx, 0x4c
mov ecx, esi
push eax
call fcn.00434c60
mov ebx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ecx, ebx
push eax
call fcn.00434d30
mov ecx, dword [ebp + 0xc]
add esp, 4
mov dword [esp + 0x20], eax
test ecx, ecx
je 0x4471f9
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1a
call fcn.00434a20
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x447070
xor edx, edx
mov ecx, ebx
call fcn.00435120
xor edx, edx
mov ecx, ebx
call fcn.00435120
jmp 0x447094
mov ecx, eax
call fcn.00434980
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
cmp dword [ecx + 0x2c], eax
jle 0x447094
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x68]
push 1
push eax
mov edx, 0x1a
call fcn.00434a20
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x4470c8
xor edx, edx
mov ecx, ebx
call fcn.00435120
xor edx, edx
mov ecx, ebx
call fcn.00435120
jmp 0x4470ec
mov ecx, eax
call fcn.00434980
mov eax, dword [esi]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 0x58]
cmp dword [ecx + 0x2c], eax
jle 0x4470ec
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1a
call fcn.00434a20
mov ebx, dword [esi]
add esp, 8
mov dword [esp + 0x40], eax
test eax, eax
jne 0x447120
xor edx, edx
mov ecx, ebx
call fcn.00435120
xor edx, edx
mov ecx, ebx
call fcn.00435120
jmp 0x447144
mov ecx, eax
call fcn.00434980
mov eax, dword [esi]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 0x58]
cmp dword [ecx + 0x2c], eax
jle 0x447144
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x60]
push 1
push eax
mov edx, 0x1a
call fcn.00434a20
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x4c], eax
test ebx, ebx
jne 0x44717c
xor edx, edx
mov ecx, eax
call fcn.00435120
mov ecx, dword [esp + 0x4c]
xor edx, edx
call fcn.00435120
jmp 0x44719c
mov ecx, ebx
call fcn.00434980
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
cmp dword [ebx + 0x2c], eax
jle 0x44719c
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
push 0
push ecx
push 0
push dword [esp + 0x44]
mov edx, 0x76
mov ecx, esi
push dword [esp + 0x4c]
call fcn.00434c60
add esp, 0x10
mov edx, 0x76
mov ecx, esi
push eax
push 0
push dword [esp + 0x4c]
push ebx
call fcn.00434c60
add esp, 0xc
mov edx, 0x46
mov ecx, esi
push eax
call fcn.00434c60
mov ebx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, ebx
push eax
call fcn.00434d30
mov ecx, dword [ebp + 0xc]
add esp, 4
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x12]
cmp al, 6
je 0x4473bb
cmp al, 9
jne 0x4472e0
test ecx, ecx
je 0x4473bb
mov ecx, dword [esi]
lea eax, [esp + 0x58]
push 1
push eax
mov edx, 0x1a
call fcn.00434a20
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x4c], eax
test ebx, ebx
jne 0x447251
xor edx, edx
mov ecx, eax
call fcn.00435120
mov ecx, dword [esp + 0x4c]
xor edx, edx
call fcn.00435120
jmp 0x447271
mov ecx, ebx
call fcn.00434980
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
cmp dword [ebx + 0x2c], eax
jle 0x447271
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
mov ecx, dword [esi]
lea eax, [esp + 0x68]
push 1
push eax
mov edx, 0x1a
call fcn.00434a20
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x4c], eax
test ebx, ebx
jne 0x4472a9
xor edx, edx
mov ecx, eax
call fcn.00435120
mov ecx, dword [esp + 0x4c]
xor edx, edx
call fcn.00435120
jmp 0x4472c9
mov ecx, ebx
call fcn.00434980
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
cmp dword [ebx + 0x2c], eax
jle 0x4472c9
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
push 0
push dword [esp + 0x44]
mov edx, 0x76
mov ecx, esi
push ebx
call fcn.00434c60
mov ebx, eax
jmp 0x44735c
cmp al, 8
jne 0x44730a
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x50]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + edx + 4]
test edx, edx
je 0x44730a
push 0
push 0
mov ecx, ebx
call fcn.00435280
add esp, 8
mov ebx, eax
jmp 0x44735f
mov ecx, dword [esi]
mov edx, 0x62
push 1
push 0
call fcn.00434a20
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x50], eax
test ebx, ebx
jne 0x44733f
xor edx, edx
mov ecx, eax
call fcn.00435120
mov ecx, dword [esp + 0x50]
xor edx, edx
call fcn.00435120
jmp 0x44735f
mov ecx, ebx
call fcn.00434980
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
cmp dword [ebx + 0x2c], eax
jle 0x44735f
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
mov edx, dword [esp + 0x24]
mov ecx, esi
push ebx
call fcn.00435b00
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
je 0x4473bb
cmp dword [esp + 0x44], 0
mov eax, dword [edx]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea eax, [eax + ecx*4]
mov dword [esp + 0x50], eax
jne 0x447392
xor ebx, ebx
jmp 0x4473b8
mov ecx, dword [esi]
lea edx, [edi + 1]
call fcn.0040a050
mov ebx, eax
test ebx, ebx
je 0x4473b4
push edi
push dword [esp + 0x48]
push ebx
call fcn.00478a50
add esp, 0xc
mov byte [ebx + edi], 0
mov eax, dword [esp + 0x50]
mov dword [eax - 0x10], ebx
mov ecx, dword [esp + 0x48]
mov ebx, dword [ebp + 8]
inc ecx
mov edi, dword [esp + 0x30]
mov dword [esp + 0x48], ecx
cmp ecx, dword [ebx + 0x14]
jl 0x446e52
mov edi, dword [esp + 0x14]
mov ecx, edi
mov edx, dword [esp + 0x28]
call fcn.00409df0
mov eax, dword [ebx]
mov eax, dword [eax]
mov ebx, eax
mov dword [esp + 0x50], eax
test eax, eax
je 0x447404
cmp byte [eax], 0
je 0x4473fc
inc ebx
cmp byte [ebx], 0
jne 0x4473f6
sub ebx, eax
and ebx, 0x3fffffff
cmp byte [esp + 0x12], 6
jne 0x44757d
push str.foreign_key_constraint_failed
mov edx, 0x38
mov dword [esp + 0x74], eax
mov ecx, edi
mov dword [esp + 0x78], ebx
call fcn.00434b20
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
je 0x447437
mov byte [eax + 1], 2
mov edx, 0x48
mov ecx, edi
call fcn.0040a050
mov edi, eax
test edi, edi
je 0x44748e
push 0x48
push 0
push edi
call fcn.00476e60
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.00440620
add esp, 8
mov ecx, eax
cmp byte [edi + 0x36], 0
mov dword [esp + 0x2c], ecx
je 0x447508
mov edx, ecx
mov ecx, edi
call fcn.00440850
mov dword [esp + 0x2c], 0
mov eax, dword [esi]
mov edx, 0xc
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.0040a050
mov edi, eax
test edi, edi
je 0x447533
mov ecx, dword [esp + 0x28]
xorps xmm0, xmm0
movq qword [edi], xmm0
mov edx, 0x14
mov dword [edi + 8], 0
call fcn.0040a050
mov edx, eax
mov dword [edi + 8], edx
test edx, edx
je 0x447533
mov ecx, dword [edi]
lea eax, [ecx + ecx*4]
lea edx, [edx + eax*4]
lea eax, [ecx + 1]
mov dword [edi], eax
mov eax, dword [esp + 0x48]
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], 0
mov dword [edx], eax
jmp 0x44754d
movsx edi, word [ecx]
lea edx, [esp + 0x70]
shl edi, 6
add edi, ecx
mov ecx, dword [esp + 0x14]
call fcn.0043d260
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dword [edi - 0x34], eax
call fcn.0043d260
mov dword [edi - 0x38], eax
jmp 0x447496
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
call fcn.00435120
mov ecx, dword [esp + 0x28]
mov edx, edi
call fcn.00435ca0
xor edi, edi
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x38]
mov edx, edi
mov ecx, esi
push dword [esp + 0x48]
call fcn.0044f400
mov edi, dword [esp + 0x34]
add esp, 0x20
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], 0
mov al, byte [edi + 0xea]
lea edx, [ebx + 0x4d]
mov ecx, edi
mov byte [esp + 0x13], al
mov byte [edi + 0xea], 0
call fcn.0040a050
mov edi, eax
test edi, edi
je 0x4476bd
lea eax, [ebx + 0x4d]
push eax
push 0
push edi
call fcn.00476e60
add esp, 0xc
test edi, edi
je 0x4476bd
lea ecx, [edi + 0x24]
push ebx
push dword [esp + 0x54]
lea eax, [ecx + 0x28]
mov dword [edi + 0x1c], ecx
push eax
mov dword [esp + 0x28], ecx
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], ebx
call fcn.00478a50
mov ebx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ecx, ebx
push 0
push 1
call fcn.00435280
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
push 1
mov dword [ecx + 0x14], eax
mov ecx, ebx
call fcn.00435510
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov edx, dword [esp + 0x2c]
mov dword [ecx + 0x18], eax
mov ecx, ebx
push 1
call fcn.004359c0
mov ecx, dword [esp + 0x20]
add esp, 4
cmp dword [esp + 0x18], 0
mov dword [ecx + 8], eax
je 0x4476c1
mov ecx, dword [esi]
mov edx, 0x13
push 1
push 0
call fcn.00434a20
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x50], eax
test ebx, ebx
jne 0x447664
mov edx, dword [esp + 0x18]
mov ecx, eax
call fcn.00435120
mov ecx, dword [esp + 0x50]
xor edx, edx
call fcn.00435120
jmp 0x4476a0
mov eax, dword [esp + 0x18]
mov ecx, 0x100
mov dword [ebx + 8], eax
test word [eax + 2], cx
je 0x447680
or word [ebx + 2], cx
mov eax, dword [eax + 0x14]
mov dword [ebx + 0x14], eax
mov ecx, ebx
call fcn.00434980
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
cmp dword [ebx + 0x2c], eax
jle 0x4476a0
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0040c0f0
add esp, 0xc
mov edx, ebx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
mov ecx, ebx
push 0
push 1
call fcn.00435280
add esp, 8
mov dword [edi + 0xc], eax
jmp 0x4476c1
mov ebx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
mov ecx, ebx
mov edx, dword [esp + 0x20]
mov byte [ebx + 0xea], al
call fcn.00435120
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.00435120
mov edx, dword [esp + 0x24]
mov ecx, ebx
call fcn.00435ca0
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x447706
mov edx, esi
mov ecx, ebx
call fcn.0044f390
mov edx, esi
mov ecx, ebx
call fcn.00409df0
cmp byte [ebx + 0x36], 1
jne 0x44774d
test edi, edi
je 0x447744
mov esi, dword [edi + 0x1c]
mov ecx, ebx
mov edx, dword [esi + 0x14]
call fcn.00435120
mov edx, dword [esi + 0x18]
mov ecx, ebx
call fcn.00435ca0
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.0044f5d0
mov edx, dword [edi + 0xc]
mov ecx, ebx
call fcn.00435120
mov edx, edi
mov ecx, ebx
call fcn.00409df0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esp + 0x12]
mov edx, dword [ebp + 0xc]
cmp al, 6
je 0x447772
cmp al, 9
jne 0x447769
test edx, edx
jne 0x447769
mov ecx, dword [esp + 0x1c]
mov byte [ecx], 0x6a
jmp 0x447779
mov ecx, dword [esp + 0x1c]
mov byte [ecx], 0x6b
jmp 0x447779
mov ecx, dword [esp + 0x1c]
mov byte [ecx], 0x74
mov esi, dword [esp + 0x30]
test edx, edx
mov dword [ecx + 4], edi
mov eax, dword [esi + 0x44]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x44]
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x54]
mov dword [eax], edi
setne al
add al, 0x6a
mov byte [edi + 8], al
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret