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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x324
mov eax, dword [0x5164b0]
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 0x431a9f
push ecx
push str.at_most__d_tables_in_a_join
push esi
call fcn.0040b35f
add esp, 0xc
jmp 0x432b62
push 0x104
push eax
lea eax, [esp + 0x228]
push eax
call fcn.004ab3c0
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.00430270
movsx eax, word [ebx]
pop ecx
imul ecx, eax, 0x4c
add ecx, 0x68
call fcn.0040b1b5
mov ecx, eax
mov dword [esp + 0x5c], ecx
call fcn.0040bc0b
test eax, eax
jne 0x432b50
movsx eax, word [ebx]
mov dword [ecx + 0x14], eax
mov dword [ecx], esi
mov dword [ecx + 4], ebx
mov ecx, edi
call fcn.0041577c
mov ecx, dword [esp + 0x5c]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x431b6b
xor edx, edx
cmp word [ebx], dx
je 0x431b5b
mov ecx, eax
call fcn.0041d036
test eax, eax
je 0x431b6b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
push 1
push dword [ecx + 0x10]
mov edx, eax
mov ecx, esi
call fcn.0041e771
pop ecx
pop ecx
movsx edx, word [ebx]
test edx, edx
jle 0x431b9e
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 0x431b7c
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x80]
dec eax
js 0x431bbe
mov esi, eax
push esi
lea edx, [esp + 0x7c]
mov ecx, ebx
call fcn.00430699
dec esi
pop ecx
jns 0x431baa
mov esi, dword [esp + 0x28]
call fcn.0040bc0b
test eax, eax
jne 0x432b50
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 0x431e70
movsd xmm0, qword [0x4f30c0]
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 0x431de7
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 0x431c77
test eax, eax
jne 0x431ddb
mov edx, dword [edx + 0x18]
lea ecx, [esp + 0x220]
call fcn.004302a8
and eax, dword [esp + 0x40]
and edx, dword [esp + 0x44]
or eax, edx
jne 0x431caa
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x50], eax
jne 0x431db0
inc eax
mov dword [esp + 0x14], eax
jmp 0x431db0
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0xc]
cmp byte [eax + 0x39], 0
je 0x431d2d
test ebx, ebx
je 0x431cbf
mov edx, dword [ebx]
jmp 0x431cc3
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.00430fdc
mov ecx, dword [esp + 0x38]
add esp, 0x18
mov eax, 0x800000
mov dword [esp + 0x30], eax
mov ecx, dword [ecx]
test ecx, ecx
je 0x431d0f
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 [0x4f30b8]
mov dword [esp + 0x54], edx
jbe 0x431d74
movsd xmm0, qword [0x4f30b8]
jmp 0x431d74
cmp dword [esp + 0x48], 0
jne 0x431d3c
test ebx, ebx
je 0x431d3c
mov eax, dword [ebx]
jmp 0x431d3e
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.0043122e
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 0x431da9
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 0x431dd7
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 0x431c5a
jmp 0x431ddb
mov ecx, dword [esp + 0x3c]
movsd xmm0, qword [0x4f30c0]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
test edx, 0x100000
je 0x431dfa
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 0x431e26
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x18], eax
inc dword [esi + 0x1c]
jmp 0x431e2a
or dword [edi + 0x18], 0xffffffff
imul edx, dword [esp + 0x2c], 0x30
mov edx, dword [edx + ecx + 0x20]
lea ecx, [esp + 0x220]
call fcn.004302a8
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 0x431c06
mov edi, dword [esp + 0x68]
test dword [esp + 0x24], 0x400000
je 0x431e86
mov eax, dword [esp + 0x18]
test eax, eax
je 0x431e86
xor ecx, ecx
mov dword [eax], ecx
or edx, 0xffffffff
mov ecx, esi
call fcn.0042363b
mov ecx, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x34], eax
cmp ax, word [ecx]
jge 0x4320e9
cmp byte [esi + 0x80], 2
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x38], eax
jne 0x431f65
imul esi, dword [ebx], 0x30
push dword [esi + ecx + 0xc]
push str.TABLE__s
call fcn.0040a77b
mov edx, dword [esp + 0x44]
pop ecx
pop ecx
mov ecx, dword [esi + edx + 0x10]
test ecx, ecx
je 0x431ee5
push ecx
push eax
push str._z_AS__s
call fcn.0040a77b
add esp, 0xc
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x431efe
push dword [ecx]
push eax
push str._z_WITH_INDEX__s
call fcn.0040a77b
add esp, 0xc
jmp 0x431f31
test dword [ebx + 4], 0x300
je 0x431f16
push eax
push str._z_USING_PRIMARY_KEY
call fcn.0040a77b
pop ecx
pop ecx
jmp 0x431f31
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x431f31
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push eax
push str._z_VIRTUAL_TABLE_INDEX__d:_s
call fcn.0040a77b
add esp, 0x10
test dword [ebx + 4], 0x100000
je 0x431f47
push eax
push str._z_ORDER_BY
call fcn.0040a77b
pop ecx
pop ecx
push 0xffffffffffffffff
push eax
push dword [ebx]
mov ecx, edi
push dword [esp + 0x40]
push 0x75
pop edx
call fcn.00415750
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.0042993d
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
cmp byte [eax + 0x35], 0
jne 0x4320ce
xor edx, edx
cmp dword [eax + 0x18], edx
jne 0x4320ce
cmp dword [ebx + 0x44], edx
je 0x431fc6
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.00415750
add esp, 0x10
jmp 0x43204c
test dword [ebx + 4], 0x80000
jne 0x43203a
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.00424147
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp dword [eax + 4], 0x40
jae 0x43204c
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 0x432028
mov esi, dword [esp + 0x20]
shrd edx, ecx, 1
shr ecx, 1
mov eax, edx
inc esi
or eax, ecx
jne 0x432013
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.00415998
pop ecx
jmp 0x43204c
push dword [eax]
push edx
push dword [eax + 0x14]
mov edx, ecx
mov ecx, esi
call fcn.00420519
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 0x4320a5
mov edx, eax
mov ecx, esi
call fcn.0042392b
mov esi, eax
mov ecx, edi
xor eax, eax
push eax
push dword [esp + 0x5c]
push 0x2f
pop edx
call fcn.004156fd
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.00415750
mov esi, dword [esp + 0x40]
add esp, 0x18
mov eax, dword [esp + 0x10]
test dword [ebx + 4], 0x82000
je 0x4320c3
mov eax, dword [eax + 4]
mov ecx, edi
inc eax
push eax
push dword [esp + 0x3c]
push 0x67
pop edx
call fcn.004156fd
pop ecx
pop ecx
mov edx, dword [esp + 0x58]
mov ecx, esi
call fcn.0042363b
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 0x431ea3
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 0x432b3c
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.0041577c
mov ecx, edi
mov dword [esp + 0x40], eax
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x1c], eax
call fcn.0041577c
xor edx, edx
mov dword [esp + 0x6c], eax
mov dword [ebx + 0x24], eax
cmp dword [ebx], edx
jle 0x4321a1
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
test byte [ecx + eax + 0x1d], 8
je 0x4321a1
cmp dword [esi + 0x20], edx
jne 0x432186
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.004156fd
pop ecx
pop ecx
xor edx, edx
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x14], eax
test eax, eax
je 0x4322e2
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 0x43222c
mov edi, eax
xor eax, eax
mov dword [esp + 0x10], eax
test ecx, ecx
jle 0x43221b
mov ebx, dword [esp + 0x54]
cmp dword [ebx + eax*8], edx
mov ebx, dword [esp + 0x60]
je 0x4321f3
inc eax
mov dword [esp + 0x10], eax
cmp eax, ecx
jl 0x4321db
jmp 0x43221b
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.0041dca0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
cmp eax, ecx
je 0x432228
inc edx
mov dword [esp + 0x38], edx
cmp edx, ecx
jle 0x4321d1
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.004156fd
push esi
mov esi, dword [esp + 0x20]
mov ecx, edi
push dword [esi + 0x14]
push 0x2f
pop edx
call fcn.004156fd
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.00415750
xor eax, eax
add esp, 0x20
mov ecx, eax
mov dword [esi + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp dword [esi], eax
jle 0x4322cc
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 0x4322b5
imul edx, dword [edi], 0x28
mov ecx, ebx
add edx, dword [esp + 0x88]
call fcn.004317c9
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 0x432297
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 0x4329ff
mov eax, dword [ebx + 4]
test eax, 0x100
je 0x432342
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.00430440
add esp, 0x14
mov edx, eax
mov ecx, esi
push ebx
call fcn.0043180a
mov esi, dword [ebx + 0x20]
pop ecx
push esi
push 1
push 0x23
pop edx
mov ecx, edi
call fcn.004156fd
push esi
push dword [esp + 0x28]
mov ecx, edi
push 0x2c
pop edx
call fcn.004156fd
add esp, 0x10
mov dword [ebx + 0x2c], 0x15
jmp 0x432a02
test eax, 0x200
je 0x432504
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.00430440
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.00430440
mov ecx, dword [esp + 0x2c]
add esp, 0x14
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4323b0
mov dword [esp + 0x14], esi
mov esi, eax
mov dword [esp + 0x10], esi
test esi, esi
je 0x43240f
mov esi, dword [esi]
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0xc]
call fcn.0041dca0
mov al, byte [esi]
cmp al, 0x46
je 0x4323d0
cmp al, 0x45
je 0x4323d0
xor eax, eax
jmp 0x4323d3
xor eax, eax
inc eax
mov esi, dword [esp + 0x40]
mov ecx, edi
push esi
push eax
push 0x73
pop edx
call fcn.004156fd
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.004156fd
mov edx, dword [esp + 0x20]
add esp, 0x10
mov ecx, ebx
call fcn.004317c9
jmp 0x43242b
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.004156fd
pop ecx
pop ecx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4324a1
mov esi, dword [eax]
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0xc]
call fcn.0041dca0
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.004156fd
mov al, byte [esi]
pop ecx
pop ecx
cmp al, 0x47
je 0x432481
cmp al, 0x45
je 0x432481
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 0x432494
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.004317c9
jmp 0x4324a5
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 0x432a02
xor ecx, ecx
push ecx
push eax
push 0x25
pop edx
mov ecx, edi
call fcn.004156fd
xor eax, eax
xor edx, edx
push eax
push dword [ebx + 8]
inc edx
mov ecx, edi
call fcn.004156fd
push dword [esp + 0x50]
mov edx, esi
mov ecx, edi
push 0x63
pop eax
push eax
call fcn.004156fd
add esp, 0x18
jmp 0x432a02
test eax, 0x2000
je 0x4328c4
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.004318d8
mov ecx, dword [esp + 0x54]
xor eax, eax
add esp, 0xc
mov dword [esp + 0x4c], eax
test ecx, ecx
jle 0x43257f
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.004156fd
pop ecx
pop ecx
push 0
pop eax
dec esi
jne 0x43255f
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 0x432598
push 0x18
mov dword [esp + 0x14], 0x24
jmp 0x4325b6
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 0x43263d
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.00430440
mov ecx, dword [esp + 0x3c]
mov esi, eax
add esp, 0x14
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
call fcn.0041dca0
push dword [esp + 0x34]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x4c]
push ecx
push 0x41
pop edx
mov ecx, edi
call fcn.004156fd
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.004317c9
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
push 0x3f
pop eax
mov dword [esp + 0x44], eax
jmp 0x432659
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 0x4326b0
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.004156fd
mov edx, dword [esp + 0x58]
pop ecx
pop ecx
mov ecx, edi
call fcn.00425b6c
cmp dword [esp + 0x18], 0
mov ecx, edi
je 0x4326a6
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 0x4326c6
push 1
push dword [ebx + 8]
push 0x7b
pop edx
jmp 0x4326c6
cmp dword [esp + 0x18], 0
je 0x4326cd
push dword [esp + 0x40]
mov ecx, edi
push dword [esp + 0x28]
push 0x34
pop eax
mov edx, eax
call fcn.004156fd
pop ecx
pop ecx
mov eax, dword [esp + 0x20]
test eax, eax
je 0x432749
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.00430440
mov ecx, dword [esp + 0x3c]
mov esi, eax
add esp, 0x14
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
call fcn.0041dca0
push dword [esp + 0x34]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x4c]
push ecx
push 0x41
pop edx
mov ecx, edi
call fcn.004156fd
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.004317c9
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
jmp 0x432751
mov dword [esp + 0x4c], 1
mov ecx, dword [esp + 0x48]
test ecx, ecx
jg 0x432782
test eax, eax
jne 0x432782
mov esi, dword [esp + 0x18]
test esi, esi
je 0x43276e
push 0x15
pop eax
mov dword [esp + 0x44], eax
jmp 0x4327ed
push dword [esp + 0x40]
mov ecx, edi
push dword [esp + 0x28]
push 0x7c
pop edx
call fcn.004156fd
jmp 0x4327e7
xor edx, edx
add eax, ecx
push edx
push eax
push 0x5a
pop edx
mov ecx, edi
call fcn.004156fd
mov edx, dword [esp + 0x58]
pop ecx
pop ecx
mov ecx, edi
call fcn.00425b6c
cmp dword [esp + 0x18], 0
mov ecx, edi
je 0x4327c8
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.004156fd
mov dword [esp + 0x4c], 0x26
jmp 0x4327e3
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.004156fd
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 0x432848
xor eax, eax
xor edx, edx
push eax
push dword [ebx + 8]
inc edx
mov ecx, edi
call fcn.004156fd
push dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
mov ecx, edi
push dword [esp + 0x30]
call fcn.004156fd
add esp, 0x10
cmp dword [esp + 0x54], 0
je 0x43282a
test esi, esi
je 0x432835
cmp dword [esp + 0x4c], 0
jne 0x432848
test esi, esi
je 0x432848
push 0xfffffffffffffffe
push 0x4ec1b0
or edx, 0xffffffff
mov ecx, edi
call fcn.00415a57
pop ecx
pop ecx
mov eax, dword [esp + 0x20]
or eax, dword [esp + 0x14]
je 0x432878
mov edx, dword [esp + 0x48]
mov ecx, edi
push edx
push dword [esp + 0x28]
push 3
pop edx
call fcn.004156fd
push dword [esp + 0x74]
mov ecx, edi
push 1
push 0x41
pop edx
call fcn.004156fd
add esp, 0x10
cmp dword [esp + 0x38], 0
jne 0x4328a6
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x28]
push 0x35
pop edx
call fcn.004156fd
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x28]
push 0x7f
pop eax
mov edx, eax
call fcn.004156fd
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 0x4329ff
test eax, 0x1000
je 0x4329df
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.004318d8
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.004156fd
mov edx, dword [esp + 0x58]
mov ecx, edi
call fcn.00425b6c
xor eax, eax
mov ecx, edi
push eax
push dword [ebx + 8]
push 0x7b
pop edx
call fcn.004156fd
mov esi, dword [esp + 0x20]
add esp, 0x10
cmp dword [esp + 0x18], 0
mov ecx, edi
push esi
push dword [esp + 0x28]
je 0x43296b
push 0x54
pop eax
mov edx, eax
call fcn.004156fd
xor eax, eax
xor edx, edx
push eax
push dword [ebx + 8]
inc edx
mov ecx, edi
call fcn.004156fd
push esi
mov esi, dword [esp + 0x38]
mov ecx, edi
push esi
push 0x26
pop edx
mov dword [esp + 0x28], eax
call fcn.004156fd
add esp, 0x18
push 0x31
pop eax
mov dword [ebx + 0x2c], eax
jmp 0x4329ac
push 0x7f
pop eax
mov edx, eax
call fcn.004156fd
xor eax, eax
xor edx, edx
push eax
push dword [ebx + 8]
inc edx
mov ecx, edi
call fcn.004156fd
push 0xfffffffffffffffe
push 0x4ec1b0
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.00415750
add esp, 0x20
mov dword [ebx + 0x2c], 0x6d
cmp dword [esp + 0x38], 0
jne 0x4329d7
xor eax, eax
mov ecx, edi
push eax
push esi
push 0x35
pop edx
call fcn.004156fd
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x28]
push 0x7f
pop eax
mov edx, eax
call fcn.004156fd
add esp, 0x10
mov dword [ebx + 0x30], esi
jmp 0x4328bb
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.004156fd
pop ecx
pop ecx
inc eax
mov dword [ebx + 0x34], eax
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x220]
call fcn.004302a8
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 0x432a88
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x28]
add esi, 0xc
test byte [esi], 6
jne 0x432a78
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
and ecx, dword [esp + 0x2c]
and eax, dword [esp + 0x30]
or ecx, eax
jne 0x432a78
mov eax, dword [esi - 0xc]
cmp dword [ebx + 0xc], ecx
je 0x432a60
test byte [eax + 2], 1
je 0x432a78
push 1
push dword [esp + 0x70]
mov edx, eax
mov ecx, edi
call fcn.0041e771
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 0x432a3b
mov edi, dword [esp + 0x68]
cmp dword [ebx + 0xc], 0
je 0x432b15
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.004156fd
mov edx, dword [esp + 0x88]
xor eax, eax
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test edx, edx
jle 0x432b15
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x28]
add esi, 0xc
mov ebx, dword [esp + 0x2c]
test byte [esi], 6
jne 0x432b01
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
and ecx, ebx
and eax, dword [esp + 0x30]
or ecx, eax
jne 0x432afd
mov edx, dword [esi - 0xc]
mov ecx, edi
push 1
push dword [esp + 0x70]
call fcn.0041e771
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 0x432acc
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 0x432110
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x78]
mov dword [ebx + 0xc], eax
call fcn.004301bd
mov eax, ebx
jmp 0x432b64
lea ecx, [esp + 0x78]
call fcn.004301bd
mov ecx, dword [esp + 0x5c]
call fcn.004319ec
xor eax, eax
mov ecx, dword [esp + 0x32c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004a5088
mov esp, ebp
pop ebp
ret