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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x324
mov eax, dword [0x5154b0]
xor eax, esp
mov dword [esp + 0x320], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov esi, ecx
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov ebx, edx
push 0x40
mov dword [esp + 0x1c], eax
xor eax, eax
mov edi, dword [esi + 0xc]
pop ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], eax
cmp word [ebx], cx
jbe 0x431ee5
push ecx
push str.at_most__d_tables_in_a_join
push esi
call fcn.0040b7a6
add esp, 0xc
jmp 0x432fa8
push 0x104
push eax
lea eax, [esp + 0x228]
push eax
call fcn.004aa670
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x22c]
mov dword [esp + 0x88], eax
lea ecx, [esp + 0x84]
xor eax, eax
mov dword [esp + 0x84], esi
add esp, 0xc
mov dword [esp + 0x80], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x84], 0xa
mov dword [esp + 0x88], eax
push 0x3d
call fcn.004306b6
movsx eax, word [ebx]
pop ecx
imul ecx, eax, 0x4c
add ecx, 0x68
call fcn.0040b5fc
mov ecx, eax
mov dword [esp + 0x5c], ecx
call fcn.0040c052
test eax, eax
jne 0x432f96
movsx eax, word [ebx]
mov dword [ecx + 0x14], eax
mov dword [ecx], esi
mov dword [ecx + 4], ebx
mov ecx, edi
call fcn.00415bc3
mov ecx, dword [esp + 0x5c]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x431fb1
xor edx, edx
cmp word [ebx], dx
je 0x431fa1
mov ecx, eax
call fcn.0041d47d
test eax, eax
je 0x431fb1
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
push 1
push dword [ecx + 0x10]
mov edx, eax
mov ecx, esi
call fcn.0041ebb8
pop ecx
pop ecx
movsx edx, word [ebx]
test edx, edx
jle 0x431fe4
mov ecx, dword [esp + 0x220]
lea edi, [ebx + 0x20]
mov eax, dword [edi]
lea edi, [edi + 0x30]
mov dword [esp + ecx*4 + 0x224], eax
mov ecx, dword [esp + 0x220]
inc ecx
mov dword [esp + 0x220], ecx
dec edx
jne 0x431fc2
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x80]
dec eax
js 0x432004
mov esi, eax
push esi
lea edx, [esp + 0x7c]
mov ecx, ebx
call fcn.00430adf
dec esi
pop ecx
jns 0x431ff0
mov esi, dword [esp + 0x28]
call fcn.0040c052
test eax, eax
jne 0x432f96
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x5c]
or dword [esp + 0x40], 0xffffffff
add ebx, 0x1c
or dword [esp + 0x44], 0xffffffff
movsx edx, word [ecx]
or dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x60], ebx
test edx, edx
jle 0x4322b6
movsd xmm0, qword [0x4f1e38]
mov edi, ebx
xor eax, eax
movsd qword [esp + 0x70], xmm0
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x50], eax
imul eax, eax, 0x30
add eax, 8
add eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
cmp eax, edx
jge 0x43222d
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x18]
add edx, 0x64
imul eax, eax, 0x4c
add eax, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x20], eax
test byte [edx + 0x15], 0xa
push 0
pop eax
setne al
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x64], eax
je 0x4320bd
test eax, eax
jne 0x432221
mov edx, dword [edx + 0x18]
lea ecx, [esp + 0x220]
call fcn.004306ee
and eax, dword [esp + 0x40]
and edx, dword [esp + 0x44]
or eax, edx
jne 0x4320f0
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x50], eax
jne 0x4321f6
inc eax
mov dword [esp + 0x14], eax
jmp 0x4321f6
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0xc]
cmp byte [eax + 0x39], 0
je 0x432173
test ebx, ebx
je 0x432105
mov edx, dword [ebx]
jmp 0x432109
xor eax, eax
mov edx, eax
push dword [esp + 0x20]
xor eax, eax
cmp dword [esp + 0x4c], eax
sete al
push eax
push edx
push dword [esp + 0x50]
lea edx, [esp + 0x88]
push dword [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00431422
mov ecx, dword [esp + 0x38]
add esp, 0x18
mov eax, 0x800000
mov dword [esp + 0x30], eax
mov ecx, dword [ecx]
test ecx, ecx
je 0x432155
cmp dword [ecx + 0x20], 0
mov edx, 0x900000
cmovne eax, edx
mov dword [esp + 0x30], eax
xor edx, edx
and dword [esp + 0x1c], edx
comisd xmm0, xmmword [0x4f1e30]
mov dword [esp + 0x54], edx
jbe 0x4321ba
movsd xmm0, qword [0x4f1e30]
jmp 0x4321ba
cmp dword [esp + 0x48], 0
jne 0x432182
test ebx, ebx
je 0x432182
mov eax, dword [ebx]
jmp 0x432184
xor eax, eax
lea edx, [esp + 0x1c]
push edx
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x5c]
push edx
push eax
push dword [esp + 0x54]
lea edx, [esp + 0x8c]
push dword [esp + 0x54]
push ecx
mov ecx, esi
call fcn.00431674
mov edx, dword [esp + 0x70]
add esp, 0x1c
xor eax, eax
mov ecx, eax
mov eax, dword [esp + 0x30]
movsd xmm1, qword [esp + 0x70]
comisd xmm1, xmm0
jbe 0x4321ef
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], 1
movsd qword [esp + 0x70], xmm0
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], eax
mov dword [edi + 0x44], ecx
cmp dword [esp + 0x64], 0
jne 0x43221d
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
inc dword [esp + 0x50]
add edx, 0x30
add dword [esp + 0x20], 0x4c
movsx eax, word [ecx]
mov dword [esp + 0x34], edx
cmp dword [esp + 0x50], eax
jl 0x4320a0
jmp 0x432221
mov ecx, dword [esp + 0x3c]
movsd xmm0, qword [0x4f1e38]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
test edx, 0x100000
je 0x432240
mov eax, dword [esp + 0x18]
and dword [eax], 0
and dword [esp + 0x24], edx
mov eax, dword [esp + 0x38]
mov dword [edi + 4], edx
mov edx, dword [esp + 0x10]
mov dword [edi + 0x38], edx
xor edx, edx
mov dword [edi + 0x10], eax
mov dword [edi + 0x40], edx
mov dword [edi + 0x3c], edx
test eax, eax
je 0x43226c
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x18], eax
inc dword [esi + 0x1c]
jmp 0x432270
or dword [edi + 0x18], 0xffffffff
imul edx, dword [esp + 0x2c], 0x30
mov edx, dword [edx + ecx + 0x20]
lea ecx, [esp + 0x220]
call fcn.004306ee
mov ecx, dword [esp + 0x3c]
not eax
and dword [esp + 0x40], eax
not edx
mov eax, dword [esp + 0x2c]
and dword [esp + 0x44], edx
mov dword [edi], eax
add edi, 0x4c
mov eax, dword [esp + 0x48]
movsx edx, word [ecx]
inc eax
mov dword [esp + 0x48], eax
cmp eax, edx
jl 0x43204c
mov edi, dword [esp + 0x68]
test dword [esp + 0x24], 0x400000
je 0x4322cc
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4322cc
xor ecx, ecx
mov dword [eax], ecx
or edx, 0xffffffff
mov ecx, esi
call fcn.00423a82
mov ecx, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x34], eax
cmp ax, word [ecx]
jge 0x43252f
cmp byte [esi + 0x80], 2
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x38], eax
jne 0x4323ab
imul esi, dword [ebx], 0x30
push dword [esi + ecx + 0xc]
push str.TABLE__s
call fcn.0040abbf
mov edx, dword [esp + 0x44]
pop ecx
pop ecx
mov ecx, dword [esi + edx + 0x10]
test ecx, ecx
je 0x43232b
push ecx
push eax
push str._z_AS__s
call fcn.0040abbf
add esp, 0xc
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x432344
push dword [ecx]
push eax
push str._z_WITH_INDEX__s
call fcn.0040abbf
add esp, 0xc
jmp 0x432377
test dword [ebx + 4], 0x300
je 0x43235c
push eax
push str._z_USING_PRIMARY_KEY
call fcn.0040abbf
pop ecx
pop ecx
jmp 0x432377
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x432377
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push eax
push str._z_VIRTUAL_TABLE_INDEX__d:_s
call fcn.0040abbf
add esp, 0x10
test dword [ebx + 4], 0x100000
je 0x43238d
push eax
push str._z_ORDER_BY
call fcn.0040abbf
pop ecx
pop ecx
push 0xffffffffffffffff
push eax
push dword [ebx]
mov ecx, edi
push dword [esp + 0x40]
push 0x75
pop edx
call fcn.00415b97
mov esi, dword [esp + 0x38]
add esp, 0x10
mov ecx, dword [esp + 0x3c]
imul eax, dword [ebx], 0x30
mov dword [esp + 0x14], eax
mov eax, dword [eax + ecx + 0x14]
mov ecx, dword [esi]
mov dword [esp + 0x10], eax
mov edx, dword [eax + 0x4c]
call fcn.00429d83
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
cmp byte [eax + 0x35], 0
jne 0x432514
xor edx, edx
cmp dword [eax + 0x18], edx
jne 0x432514
cmp dword [ebx + 0x44], edx
je 0x43240c
push 0xfffffffffffffff6
push dword [eax + 0x40]
mov eax, dword [esp + 0x1c]
mov ecx, edi
push edx
mov edx, dword [esp + 0x48]
push dword [eax + edx + 0x20]
push 0x1d
pop edx
call fcn.00415b97
add esp, 0x10
jmp 0x432492
test dword [ebx + 4], 0x80000
jne 0x432480
mov edx, dword [esp + 0x3c]
push 0xe
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, esi
mov edx, dword [eax + edx + 0x20]
call fcn.0042458e
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp dword [eax + 4], 0x40
jae 0x432492
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax + 0x30]
mov ecx, dword [ecx + eax + 0x34]
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, edx
or eax, ecx
je 0x43246e
mov esi, dword [esp + 0x20]
shrd edx, ecx, 1
shr ecx, 1
mov eax, edx
inc esi
or eax, ecx
jne 0x432459
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x28]
mov edx, dword [edi + 0x10]
mov ecx, edi
push dword [esp + 0x20]
dec edx
call fcn.00415ddf
pop ecx
jmp 0x432492
push dword [eax]
push edx
push dword [eax + 0x14]
mov edx, ecx
mov ecx, esi
call fcn.00420960
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + eax + 0x20]
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x10], eax
test eax, eax
je 0x4324eb
mov edx, eax
mov ecx, esi
call fcn.00423d72
mov esi, eax
mov ecx, edi
xor eax, eax
push eax
push dword [esp + 0x5c]
push 0x2f
pop edx
call fcn.00415b44
mov eax, dword [esp + 0x18]
mov ecx, edi
push 0xfffffffffffffff7
push esi
push dword [eax + 0x14]
push dword [esp + 0x4c]
push 0xe
pop edx
call fcn.00415b97
mov esi, dword [esp + 0x40]
add esp, 0x18
mov eax, dword [esp + 0x10]
test dword [ebx + 4], 0x82000
je 0x432509
mov eax, dword [eax + 4]
mov ecx, edi
inc eax
push eax
push dword [esp + 0x3c]
push 0x67
pop edx
call fcn.00415b44
pop ecx
pop ecx
mov edx, dword [esp + 0x58]
mov ecx, esi
call fcn.00423a82
mov ecx, dword [esp + 0x3c]
add ebx, 0x4c
mov edx, dword [esp + 0x34]
inc edx
mov dword [esp + 0x34], edx
movsx eax, word [ecx]
cmp edx, eax
jl 0x4322e9
mov ebx, dword [esp + 0x5c]
mov eax, dword [edi + 0x10]
or dword [esp + 0x2c], 0xffffffff
or dword [esp + 0x30], 0xffffffff
mov dword [ebx + 8], eax
xor eax, eax
mov dword [esp + 0x64], eax
cmp ax, word [ecx]
jge 0x432f82
mov ebx, dword [esp + 0x60]
imul eax, dword [ebx], 0x30
mov dword [esp + 0x10], eax
mov eax, dword [eax + ecx + 0x20]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x24], eax
mov eax, ecx
shr ecx, 0x13
and ecx, 1
shr eax, 0x15
and eax, 1
mov dword [esp + 0x38], ecx
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.00415bc3
mov ecx, edi
mov dword [esp + 0x40], eax
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x1c], eax
call fcn.00415bc3
xor edx, edx
mov dword [esp + 0x6c], eax
mov dword [ebx + 0x24], eax
cmp dword [ebx], edx
jle 0x4325e7
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
test byte [ecx + eax + 0x1d], 8
je 0x4325e7
cmp dword [esi + 0x20], edx
jne 0x4325cc
mov dword [esi + 0x20], 1
mov eax, dword [esi + 0x20]
mov ecx, edi
mov dword [ebx + 0xc], eax
inc dword [esi + 0x20]
push dword [ebx + 0xc]
push edx
push 0x30
pop edx
call fcn.00415b44
pop ecx
pop ecx
xor edx, edx
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x14], eax
test eax, eax
je 0x432728
mov edx, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x54], edx
xor edx, edx
inc edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x38], edx
cmp ecx, edx
jl 0x432672
mov edi, eax
xor eax, eax
mov dword [esp + 0x10], eax
test ecx, ecx
jle 0x432661
mov ebx, dword [esp + 0x54]
cmp dword [ebx + eax*8], edx
mov ebx, dword [esp + 0x60]
je 0x432639
inc eax
mov dword [esp + 0x10], eax
cmp eax, ecx
jl 0x432621
jmp 0x432661
imul eax, eax, 0xc
mov ecx, esi
imul edx, dword [eax + edi + 8], 0x28
mov eax, dword [esp + 0x88]
mov edx, dword [edx + eax]
mov edx, dword [edx + 0xc]
call fcn.0041e0e7
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
cmp eax, ecx
je 0x43266e
inc edx
mov dword [esp + 0x38], edx
cmp edx, ecx
jle 0x432617
mov edi, dword [esp + 0x68]
xor esi, esi
lea eax, [edx - 1]
push esi
push eax
push 0x2f
pop edx
mov ecx, edi
call fcn.00415b44
push esi
mov esi, dword [esp + 0x20]
mov ecx, edi
push dword [esi + 0x14]
push 0x2f
pop edx
call fcn.00415b44
push 0xfffffffffffffffe
pop eax
push 0xfffffffffffffff5
pop ecx
xor edx, edx
cmp dword [esi + 0x1c], edx
cmovne eax, ecx
mov ecx, edi
push eax
push dword [esi + 0x18]
push dword [esp + 0x58]
push dword [esp + 0x38]
push 0x6a
pop edx
call fcn.00415b97
xor eax, eax
add esp, 0x20
mov ecx, eax
mov dword [esi + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp dword [esi], eax
jle 0x432712
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
add edi, 8
add eax, 4
mov dword [esp + 0x38], eax
cmp byte [eax], 0
je 0x4326fb
imul edx, dword [edi], 0x28
mov ecx, ebx
add edx, dword [esp + 0x88]
call fcn.00431c0f
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
inc ecx
add eax, 8
add edi, 0xc
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], eax
cmp ecx, dword [esi]
jl 0x4326dd
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x2c], 2
mov dword [ebx + 0x30], eax
mov eax, dword [edi + 0x10]
jmp 0x432e45
mov eax, dword [ebx + 4]
test eax, 0x100
je 0x432788
push edx
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x7c]
push 3
push dword [esp + 0x38]
push dword [esp + 0x38]
push 0xffffffffffffffff
call fcn.00430886
add esp, 0x14
mov edx, eax
mov ecx, esi
push ebx
call fcn.00431c50
mov esi, dword [ebx + 0x20]
pop ecx
push esi
push 1
push 0x23
pop edx
mov ecx, edi
call fcn.00415b44
push esi
push dword [esp + 0x28]
mov ecx, edi
push 0x2c
pop edx
call fcn.00415b44
add esp, 0x10
mov dword [ebx + 0x2c], 0x15
jmp 0x432e48
test eax, 0x200
je 0x43294a
push edx
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x7c]
push 0x24
push dword [esp + 0x38]
mov dword [esp + 0x2c], 0x15
push dword [esp + 0x38]
push 0xffffffffffffffff
call fcn.00430886
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x8c]
add esp, 0x14
mov esi, eax
xor eax, eax
mov dword [esp + 0x10], esi
push eax
push 0x18
push dword [esp + 0x38]
push dword [esp + 0x38]
push 0xffffffffffffffff
call fcn.00430886
mov ecx, dword [esp + 0x2c]
add esp, 0x14
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4327f6
mov dword [esp + 0x14], esi
mov esi, eax
mov dword [esp + 0x10], esi
test esi, esi
je 0x432855
mov esi, dword [esi]
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0xc]
call fcn.0041e0e7
mov al, byte [esi]
cmp al, 0x46
je 0x432816
cmp al, 0x45
je 0x432816
xor eax, eax
jmp 0x432819
xor eax, eax
inc eax
mov esi, dword [esp + 0x40]
mov ecx, edi
push esi
push eax
push 0x73
pop edx
call fcn.00415b44
cmp dword [esp + 0x20], 0
mov ecx, edi
push esi
push dword [esp + 0x28]
push 0x7f
pop eax
mov edx, eax
push 0x63
pop eax
cmovne edx, eax
call fcn.00415b44
mov edx, dword [esp + 0x20]
add esp, 0x10
mov ecx, ebx
call fcn.00431c0f
jmp 0x432871
push dword [esp + 0x40]
test ecx, ecx
mov ecx, edi
push dword [esp + 0x20]
push 0x7c
pop edx
push 0x34
pop eax
cmovne edx, eax
call fcn.00415b44
pop ecx
pop ecx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4328e7
mov esi, dword [eax]
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0xc]
call fcn.0041e0e7
mov ecx, dword [esp + 0x28]
push 1
mov eax, dword [ecx + 0x20]
mov dword [ebx + 8], eax
inc dword [ecx + 0x20]
mov ecx, edi
push dword [ebx + 8]
push 0x7b
pop edx
call fcn.00415b44
mov al, byte [esi]
pop ecx
pop ecx
cmp al, 0x47
je 0x4328c7
cmp al, 0x45
je 0x4328c7
cmp dword [esp + 0x18], 0
push 0x45
pop esi
push 0x47
pop eax
cmovne esi, eax
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x18]
jmp 0x4328da
mov esi, dword [esp + 0x18]
test esi, esi
push 0x48
pop eax
push 0x46
pop ecx
cmovne eax, ecx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x14]
mov ecx, ebx
call fcn.00431c0f
jmp 0x4328eb
mov esi, dword [esp + 0x18]
mov ecx, dword [edi + 0x10]
test esi, esi
mov esi, dword [esp + 0x20]
push 0x6d
pop eax
push 0x31
pop edx
cmovne eax, edx
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x30], eax
cmp esi, 0x15
je 0x432e48
xor ecx, ecx
push ecx
push eax
push 0x25
pop edx
mov ecx, edi
call fcn.00415b44
xor eax, eax
xor edx, edx
push eax
push dword [ebx + 8]
inc edx
mov ecx, edi
call fcn.00415b44
push dword [esp + 0x50]
mov edx, esi
mov ecx, edi
push 0x63
pop eax
push eax
call fcn.00415b44
add esp, 0x18
jmp 0x432e48
test eax, 0x2000
je 0x432d0a
push dword [esp + 0x30]
mov edx, dword [ebx + 0x38]
mov ecx, eax
push dword [esp + 0x30]
shr eax, 0x11
shr ecx, 0x10
and eax, 1
and ecx, 1
mov dword [esp + 0x28], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x50], edx
mov dword [esp + 0x1c], ecx
mov edx, ebx
push eax
mov ecx, esi
call fcn.00431d1e
mov ecx, dword [esp + 0x54]
xor eax, eax
add esp, 0xc
mov dword [esp + 0x4c], eax
test ecx, ecx
jle 0x4329c5
lea ebx, [ecx - 1]
mov dword [esp + 0x4c], ecx
mov esi, ecx
push eax
push ebx
push 0x5d
pop edx
mov ecx, edi
call fcn.00415b44
pop ecx
pop ecx
push 0
pop eax
dec esi
jne 0x4329a5
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x28]
cmp byte [ecx + eax], 0
jne 0x4329de
push 0x18
mov dword [esp + 0x14], 0x24
jmp 0x4329fc
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x48]
push 0x24
mov dword [esp + 0x14], 0x18
mov dword [esp + 0x24], eax
cmp dword [esp + 0x18], 0
mov eax, dword [ebx + 0x20]
pop edx
mov dword [esp + 0x34], eax
je 0x432a83
mov ecx, dword [esp + 0x50]
push ecx
push edx
push dword [esp + 0x38]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x58]
push dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
push dword [eax + ecx*4]
lea ecx, [esp + 0x8c]
call fcn.00430886
mov ecx, dword [esp + 0x3c]
mov esi, eax
add esp, 0x14
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
call fcn.0041e0e7
push dword [esp + 0x34]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x4c]
push ecx
push 0x41
pop edx
mov ecx, edi
call fcn.00415b44
movzx eax, word [esi + 0xa]
mov edx, esi
pop ecx
pop ecx
and eax, 0x28
mov ecx, ebx
mov dword [esp + 0x54], eax
call fcn.00431c0f
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
push 0x3f
pop eax
mov dword [esp + 0x44], eax
jmp 0x432a9f
push 0x15
pop eax
test ecx, ecx
mov dword [esp + 0x54], 1
push 0x3f
pop edx
cmovg eax, edx
mov dword [esp + 0x44], eax
cmp eax, 0x15
je 0x432af6
mov eax, dword [esi + 0x20]
mov dword [ebx + 8], eax
xor eax, eax
inc dword [esi + 0x20]
push eax
mov eax, dword [esp + 0x18]
add eax, ecx
mov ecx, edi
push eax
push 0x5a
pop edx
call fcn.00415b44
mov edx, dword [esp + 0x58]
pop ecx
pop ecx
mov ecx, edi
call fcn.00425fb3
cmp dword [esp + 0x18], 0
mov ecx, edi
je 0x432aec
push dword [esp + 0x34]
cmp dword [esp + 0x58], 0
push dword [esp + 0x28]
push 0x63
pop eax
mov edx, eax
push 0x54
pop eax
cmovne edx, eax
jmp 0x432b0c
push 1
push dword [ebx + 8]
push 0x7b
pop edx
jmp 0x432b0c
cmp dword [esp + 0x18], 0
je 0x432b13
push dword [esp + 0x40]
mov ecx, edi
push dword [esp + 0x28]
push 0x34
pop eax
mov edx, eax
call fcn.00415b44
pop ecx
pop ecx
mov eax, dword [esp + 0x20]
test eax, eax
je 0x432b8f
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x1c]
push ecx
push dword [esp + 0x14]
mov eax, dword [ecx + 8]
push dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
push dword [esp + 0x38]
push dword [eax + ecx*4]
lea ecx, [esp + 0x8c]
call fcn.00430886
mov ecx, dword [esp + 0x3c]
mov esi, eax
add esp, 0x14
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
call fcn.0041e0e7
push dword [esp + 0x34]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x4c]
push ecx
push 0x41
pop edx
mov ecx, edi
call fcn.00415b44
movzx eax, word [esi + 0xa]
mov edx, esi
pop ecx
pop ecx
and eax, 0x28
mov ecx, ebx
mov dword [esp + 0x4c], eax
call fcn.00431c0f
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
jmp 0x432b97
mov dword [esp + 0x4c], 1
mov ecx, dword [esp + 0x48]
test ecx, ecx
jg 0x432bc8
test eax, eax
jne 0x432bc8
mov esi, dword [esp + 0x18]
test esi, esi
je 0x432bb4
push 0x15
pop eax
mov dword [esp + 0x44], eax
jmp 0x432c33
push dword [esp + 0x40]
mov ecx, edi
push dword [esp + 0x28]
push 0x7c
pop edx
call fcn.00415b44
jmp 0x432c2d
xor edx, edx
add eax, ecx
push edx
push eax
push 0x5a
pop edx
mov ecx, edi
call fcn.00415b44
mov edx, dword [esp + 0x58]
pop ecx
pop ecx
mov ecx, edi
call fcn.00425fb3
cmp dword [esp + 0x18], 0
mov ecx, edi
je 0x432c0e
mov eax, dword [esi + 0x20]
mov dword [ebx + 8], eax
inc dword [esi + 0x20]
push 1
push dword [ebx + 8]
push 0x7b
pop edx
call fcn.00415b44
mov dword [esp + 0x4c], 0x26
jmp 0x432c29
push dword [esp + 0x34]
cmp dword [esp + 0x50], 0
push dword [esp + 0x28]
push 7
pop edx
push 0x7f
pop eax
cmovne edx, eax
call fcn.00415b44
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
pop ecx
pop ecx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x10], ecx
cmp eax, 0x15
je 0x432c8e
xor eax, eax
xor edx, edx
push eax
push dword [ebx + 8]
inc edx
mov ecx, edi
call fcn.00415b44
push dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
mov ecx, edi
push dword [esp + 0x30]
call fcn.00415b44
add esp, 0x10
cmp dword [esp + 0x54], 0
je 0x432c70
test esi, esi
je 0x432c7b
cmp dword [esp + 0x4c], 0
jne 0x432c8e
test esi, esi
je 0x432c8e
push 0xfffffffffffffffe
push 0x4eb230
or edx, 0xffffffff
mov ecx, edi
call fcn.00415e9e
pop ecx
pop ecx
mov eax, dword [esp + 0x20]
or eax, dword [esp + 0x14]
je 0x432cbe
mov edx, dword [esp + 0x48]
mov ecx, edi
push edx
push dword [esp + 0x28]
push 3
pop edx
call fcn.00415b44
push dword [esp + 0x74]
mov ecx, edi
push 1
push 0x41
pop edx
call fcn.00415b44
add esp, 0x10
cmp dword [esp + 0x38], 0
jne 0x432cec
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x28]
push 0x35
pop edx
call fcn.00415b44
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x28]
push 0x7f
pop eax
mov edx, eax
call fcn.00415b44
add esp, 0x10
push 0x6d
pop eax
push 0x31
test esi, esi
pop ecx
cmovne eax, ecx
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x10]
jmp 0x432e45
test eax, 0x1000
je 0x432e25
push dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x7c]
push dword [esp + 0x30]
mov esi, dword [ebx + 0x38]
mov edx, ebx
push eax
call fcn.00431d1e
mov eax, dword [ebx + 0x20]
add esp, 0xc
mov dword [esp + 0x10], eax
mov ecx, edi
xor eax, eax
push eax
push esi
push 0x5a
pop edx
call fcn.00415b44
mov edx, dword [esp + 0x58]
mov ecx, edi
call fcn.00425fb3
xor eax, eax
mov ecx, edi
push eax
push dword [ebx + 8]
push 0x7b
pop edx
call fcn.00415b44
mov esi, dword [esp + 0x20]
add esp, 0x10
cmp dword [esp + 0x18], 0
mov ecx, edi
push esi
push dword [esp + 0x28]
je 0x432db1
push 0x54
pop eax
mov edx, eax
call fcn.00415b44
xor eax, eax
xor edx, edx
push eax
push dword [ebx + 8]
inc edx
mov ecx, edi
call fcn.00415b44
push esi
mov esi, dword [esp + 0x38]
mov ecx, edi
push esi
push 0x26
pop edx
mov dword [esp + 0x28], eax
call fcn.00415b44
add esp, 0x18
push 0x31
pop eax
mov dword [ebx + 0x2c], eax
jmp 0x432df2
push 0x7f
pop eax
mov edx, eax
call fcn.00415b44
xor eax, eax
xor edx, edx
push eax
push dword [ebx + 8]
inc edx
mov ecx, edi
call fcn.00415b44
push 0xfffffffffffffffe
push 0x4eb230
push esi
mov esi, dword [esp + 0x40]
mov ecx, edi
push esi
mov dword [esp + 0x30], eax
push 0x3f
pop eax
mov edx, eax
call fcn.00415b97
add esp, 0x20
mov dword [ebx + 0x2c], 0x6d
cmp dword [esp + 0x38], 0
jne 0x432e1d
xor eax, eax
mov ecx, edi
push eax
push esi
push 0x35
pop edx
call fcn.00415b44
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x28]
push 0x7f
pop eax
mov edx, eax
call fcn.00415b44
add esp, 0x10
mov dword [ebx + 0x30], esi
jmp 0x432d01
push dword [esp + 0x40]
mov eax, dword [esp + 0x20]
mov ecx, edi
push eax
push 0x7c
pop edx
mov dword [ebx + 0x2c], 0x6d
mov dword [ebx + 0x30], eax
call fcn.00415b44
pop ecx
pop ecx
inc eax
mov dword [ebx + 0x34], eax
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x220]
call fcn.004306ee
not edx
not eax
and dword [esp + 0x30], edx
mov edx, dword [esp + 0x80]
and dword [esp + 0x2c], eax
mov dword [esp + 0x10], edx
test edx, edx
jle 0x432ece
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x28]
add esi, 0xc
test byte [esi], 6
jne 0x432ebe
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
and ecx, dword [esp + 0x2c]
and eax, dword [esp + 0x30]
or ecx, eax
jne 0x432ebe
mov eax, dword [esi - 0xc]
cmp dword [ebx + 0xc], ecx
je 0x432ea6
test byte [eax + 2], 1
je 0x432ebe
push 1
push dword [esp + 0x70]
mov edx, eax
mov ecx, edi
call fcn.0041ebb8
or byte [esi], 4
mov edx, dword [esp + 0x18]
pop ecx
pop ecx
dec edx
add esi, 0x28
mov dword [esp + 0x10], edx
test edx, edx
jg 0x432e81
mov edi, dword [esp + 0x68]
cmp dword [ebx + 0xc], 0
je 0x432f5b
push dword [ebx + 0xc]
mov eax, dword [edi + 0x10]
mov ecx, edi
push 1
push 0x30
pop edx
mov dword [ebx + 0x28], eax
call fcn.00415b44
mov edx, dword [esp + 0x88]
xor eax, eax
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test edx, edx
jle 0x432f5b
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x28]
add esi, 0xc
mov ebx, dword [esp + 0x2c]
test byte [esi], 6
jne 0x432f47
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
and ecx, ebx
and eax, dword [esp + 0x30]
or ecx, eax
jne 0x432f43
mov edx, dword [esi - 0xc]
mov ecx, edi
push 1
push dword [esp + 0x70]
call fcn.0041ebb8
or byte [esi], 4
mov edx, dword [esp + 0x88]
pop ecx
pop ecx
mov eax, dword [esp + 0x14]
inc eax
add esi, 0x28
mov dword [esp + 0x14], eax
cmp eax, edx
jl 0x432f12
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x3c]
add ebx, 0x4c
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x28]
inc edx
mov dword [esp + 0x64], edx
movsx eax, word [ecx]
mov dword [esp + 0x60], ebx
cmp edx, eax
jl 0x432556
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x78]
mov dword [ebx + 0xc], eax
call fcn.00430603
mov eax, ebx
jmp 0x432faa
lea ecx, [esp + 0x78]
call fcn.00430603
mov ecx, dword [esp + 0x5c]
call fcn.00431e32
xor eax, eax
mov ecx, dword [esp + 0x32c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004a41df
mov esp, ebp
pop ebp
ret