Function at 0x42b860
Capabilities:
Encrypt data using speck
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2cc
mov eax, dword [0x4ba010]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor eax, eax
push edi
mov edi, ecx
mov esi, dword [edi]
mov cl, byte [esi + 0x42]
mov ebx, dword [edi + 0x58]
mov edx, dword [edi + 0x5c]
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x61], al
mov byte [ebp - 0x4d], cl
mov ecx, dword [esi + 0x24]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xa4], eax
mov eax, dword [esi + 0x20]
push edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], ecx
call fcn.00424ef0
add esp, 4
cmp dword [edi + 0x28], 7
je 0x42d0bc
xor eax, eax
mov dword [edi + 0x28], eax
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], eax
mov dword [edi + 0x68], eax
mov edx, dword [esi + 0xf8]
mov dword [esi + 0x184], eax
test edx, edx
jne 0x4305f5
cmp dword [esi + 0x130], eax
je 0x42b917
mov esi, dword [esi + 0x138]
mov eax, dword [edi + 0xac]
div esi
sub esi, edx
mov dword [ebp - 0xcc], esi
mov eax, dword [edi + 0x24]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*4]
mov dl, byte [ebx]
inc dword [ebp - 0x8c]
movzx eax, dl
mov dword [ebp - 0x18], ebx
cmp eax, 0x9e
ja case.0x42b939.112
jmp dword [eax*4 + 0x43077c]
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8]
mov eax, 4
mov word [ecx + 8], ax
mov edx, ebx
sub edx, dword [ebp - 0x48]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x42e084
mov ebx, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x48]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
mov edx, 0x80
mov ebx, ecx
mov dword [ebp - 0x18], ecx
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebx + 0xc]
dec eax
cdq
mov dword [ecx + 4], edx
mov edx, 4
mov dword [ecx], eax
mov word [ecx + 8], dx
cmp dword [ebx + 8], 0
jne 0x42e084
add ebx, 0x14
jmp 0x42b920
mov ebx, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x48]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*4 - 0x14]
mov ecx, 0x80
mov ebx, edx
mov dword [ebp - 0x18], edx
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
sub ebx, dword [ebp - 0x48]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea ecx, [eax + edx*8]
mov esi, dword [ecx]
mov edx, 4
mov word [ecx + 8], dx
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x48]
lea eax, [esi + esi*4]
lea edx, [ecx + eax*4]
mov ebx, edx
mov dword [ebp - 0x18], edx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je case.0x42b939.112
mov ecx, ebx
sub ecx, dword [ebp - 0x48]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebx + 4], 0
mov dword [ebp - 0x3c], eax
jne 0x430201
mov ecx, dword [edi + 0xb8]
test ecx, ecx
je 0x430201
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x2c]
dec dword [edi + 0xc0]
mov dword [edi + 0xb8], edx
mov edx, dword [ebp - 0x1c]
add dword [edx + 0x5c], eax
mov ebx, ecx
mov dword [edx + 0x58], eax
call fcn.004259c0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x88], edx
mov edx, dword [ebp - 0x18]
cmp dword [edx + 8], 4
mov dword [ebp - 0x84], ecx
jne 0x42badd
mov ecx, dword [edi + 0x58]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov ecx, dword [edi + 0x58]
mov edx, dword [edi + 0x5c]
lea eax, [eax + eax*4]
mov dword [ebp - 0x48], ecx
lea ecx, [ecx + eax*4]
mov ebx, ecx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], ecx
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov edx, 8
mov word [eax + 8], dx
mov ecx, dword [ebx + 0x10]
fld qword [ecx]
add ebx, 0x14
fstp qword [eax]
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov esi, eax
mov eax, dword [ebx + 0x10]
mov byte [ebx], 0x4e
mov dword [ebp - 0x3c], eax
call fcn.00406d50
cmp byte [ebp - 0x4d], 1
mov dword [ebx + 4], eax
je 0x42bbd7
mov edx, dword [ebp - 0x3c]
push 1
push edx
xor eax, eax
or ecx, 0xffffffff
mov edx, esi
call fcn.004231e0
movzx ecx, byte [ebp - 0x4d]
mov dword [ebp - 0x14], eax
add esp, 8
mov eax, esi
call fcn.004225e0
test eax, eax
jne 0x42d0b9
mov ebx, dword [ebp - 0x18]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebx + 1], 0xff
jne 0x42bbc4
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x1c]
call fcn.004041a0
mov byte [ebx + 1], 0xff
mov ecx, dword [esi + 0x10]
mov dword [ebx + 0x10], ecx
mov edx, dword [esi + 0xc]
mov dword [ebx + 4], edx
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x1c]
cmp eax, dword [ecx + 0x60]
jg 0x42c43f
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov ecx, eax
mov edx, 0xa02
mov word [ecx + 8], dx
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov edx, dword [ebx + 4]
mov al, byte [ebp - 0x4d]
mov dword [ecx + 0xc], edx
mov byte [ecx + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle case.0x42b939.112
lea esi, [eax + eax*4]
movzx eax, byte [ebx + 3]
cdq
mov dword [ebp - 0x25c], edx
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + esi*8]
cmp edx, eax
jne case.0x42b939.112
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + esi*8 + 4]
cmp edx, dword [ebp - 0x25c]
jne case.0x42b939.112
mov eax, 0xa10
mov word [ecx + 8], ax
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov esi, dword [ebx + 0xc]
sub esi, dword [ebx + 8]
mov ecx, dword [ebx + 4]
neg ecx
sbb ecx, ecx
and ecx, 0x100
inc ecx
movzx ecx, cx
mov word [eax + 8], cx
add eax, 0xc
mov dword [ebp - 0x3c], ecx
mov dword [eax], 0
test esi, esi
jle case.0x42b939.112
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
add eax, 0x28
mov dword [ebp - 0x30], eax
add eax, 0xfffffff4
call fcn.00422f00
mov eax, dword [ebp - 0x30]
mov dx, word [ebp - 0x3c]
dec esi
mov word [eax - 4], dx
mov dword [eax], 0
test esi, esi
jg 0x42bc92
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
mov dx, word [ecx + eax*8 + 8]
lea eax, [ecx + eax*8]
mov ecx, 0xff7f
and dx, cx
or dx, 1
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebx + 4]
mov esi, eax
push 0
push edx
xor eax, eax
mov edx, esi
call fcn.004231e0
mov al, byte [ebp - 0x4d]
add esp, 8
mov byte [esi + 0xa], al
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov edx, dword [edi + 0x74]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8 - 0x28]
mov ecx, esi
call fcn.00423050
test eax, eax
jne 0x42c43f
mov eax, ebx
mov edx, edi
call fcn.0042b830
push 0x800
push esi
push eax
call fcn.004230b0
add esp, 0xc
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea edx, [esi + ecx*8]
lea eax, [ebx + ebx*4]
mov dword [ebp - 0x38], edx
lea esi, [esi + eax*8]
mov ebx, dword [ebp - 0x38]
mov eax, esi
call fcn.004231a0
mov ecx, 0x1000
test word [esi + 8], cx
je 0x42bd96
mov eax, esi
call fcn.00422740
test eax, eax
jne 0x42d0b9
add dword [ebp - 0x38], 0x28
add esi, 0x28
dec dword [ebp - 0x2c]
jne 0x42bd72
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
mov dword [ebp - 0x2c], edx
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
mov dword [ebp - 0x38], edx
lea esi, [ecx + eax*8]
jmp 0x42bdd0
mov ecx, dword [ebp - 0x38]
push 0x1000
push ecx
push esi
call fcn.004230b0
mov edx, 0x1000
add esp, 0xc
test word [esi + 8], dx
je 0x42be02
mov eax, esi
call fcn.00422740
test eax, eax
jne 0x42d0b6
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov ecx, eax
dec eax
mov dword [ebp - 0x2c], eax
test ecx, ecx
je case.0x42b939.112
add esi, 0x28
add dword [ebp - 0x38], 0x28
jmp 0x42bdd0
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
push 0x1000
push eax
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
push eax
call fcn.004230b0
add esp, 0xc
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + ecx*8]
push edx
push ecx
mov ecx, dword [ebx + 8]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
call fcn.00422f60
add esp, 8
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
movzx ecx, word [edx + 8]
mov dword [ebp - 0x38], edx
mov dl, byte [esi + 8]
or dl, cl
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x28], eax
test dl, 1
je 0x42beb5
call fcn.00422f00
add ebx, 0x14
jmp 0x42b920
test ecx, 0x4000
je 0x42bed0
mov esi, dword [ebp - 0x38]
call fcn.004227b0
test eax, eax
jne 0x42d0b6
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x34]
mov eax, 0x4000
test word [esi + 8], ax
je 0x42beee
call fcn.004227b0
test eax, eax
jne 0x42d0b6
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
test byte [eax + 8], 0x12
jne 0x42bf15
mov ecx, dword [ebp - 0x4d]
push 0
push ecx
mov esi, eax
call fcn.00422860
add esp, 8
test eax, eax
jne 0x42d0b6
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x34]
test byte [esi + 8], 0x12
jne 0x42bf37
mov edx, dword [ebp - 0x4d]
push 0
push edx
call fcn.00422860
add esp, 8
test eax, eax
jne 0x42d0b6
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
add eax, dword [esi + 0xc]
cdq
mov ecx, edx
mov edx, dword [ebp - 0x1c]
mov ebx, eax
mov eax, dword [edx + 0x60]
cdq
cmp ecx, edx
jg 0x42c43f
jl 0x42bf5e
cmp ebx, eax
ja 0x42c43f
mov edi, dword [ebp - 0x28]
xor eax, eax
cmp edi, esi
sete al
lea ecx, [ebx + 2]
mov edx, edi
call fcn.00422600
test eax, eax
jne 0x42d0b6
mov eax, edi
mov cx, word [eax + 8]
mov edx, 0x3e00
and cx, dx
or cx, 2
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x34]
cmp eax, ecx
je 0x42bfab
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
push edx
mov edx, dword [eax + 0x10]
push ecx
push edx
call fcn.004a7950
add esp, 0xc
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov esi, dword [ebp - 0x28]
mov eax, dword [esi + 0x10]
push ecx
mov ecx, dword [ebp - 0x34]
add eax, dword [ecx + 0xc]
push edx
push eax
call fcn.004a7950
mov edx, dword [esi + 0x10]
mov edi, dword [ebp - 0x20]
mov byte [ebx + edx], 0
mov eax, dword [esi + 0x10]
mov dl, byte [ebp - 0x4d]
mov byte [eax + ebx + 1], 0
mov dword [esi + 0xc], ebx
mov ebx, dword [ebp - 0x18]
add esp, 0xc
mov ecx, 0x200
or word [esi + 8], cx
mov byte [esi + 0xa], dl
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
call fcn.0042b7d0
mov ecx, dword [ebp - 0x24]
movzx edx, ax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], eax
call fcn.0042b7d0
mov ecx, dword [ebp - 0x24]
movzx edx, ax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
mov dword [ebp - 0x2c], edx
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x34]
mov cl, byte [eax + 8]
or cl, byte [esi + 8]
mov dword [ebp - 0x28], edx
test cl, 1
jne 0x42c27f
mov dl, byte [ebp - 0x2c]
and dl, byte [ebp - 0x30]
test dl, 4
je 0x42c163
mov edx, dword [ebp - 0x34]
mov edx, dword [edx]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x78], edx
mov edx, dword [ebp - 0x34]
mov edx, dword [edx + 4]
mov dword [ebp - 0x74], edx
movzx edx, byte [ebx]
add edx, 0xffffffd1
mov byte [ebp - 0x49], 1
cmp edx, 3
ja case.default.0x42c086
jmp dword [edx*4 + 0x4309f8]
push ecx
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.00407f10
add esp, 0xc
test eax, eax
jne 0x42c167
jmp 0x42c139
push ecx
push eax
lea edx, [ebp - 0x78]
call fcn.00407fb0
add esp, 8
test eax, eax
jne 0x42c167
jmp 0x42c139
push ecx
push eax
lea ecx, [ebp - 0x78]
push ecx
call fcn.00408000
add esp, 0xc
test eax, eax
jne 0x42c167
jmp 0x42c139
mov edx, eax
or edx, ecx
je 0x42c27f
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x42c0f9
cmp dword [ebp - 0x78], 0
jne 0x42c0f9
cmp dword [ebp - 0x74], 0x80000000
je 0x42c167
push ecx
mov ecx, dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x74]
push eax
push ecx
call fcn.004a6bf0
jmp 0x42c133
mov edx, eax
or edx, ecx
je 0x42c27f
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x42c124
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x74]
push eax
push ecx
call fcn.004a6ca0
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov dword [eax], edx
mov dx, word [eax + 8]
mov dword [eax + 4], ecx
mov ecx, 0x3e00
and dx, cx
or dx, 4
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x42b920
mov byte [ebp - 0x49], 0
mov eax, esi
call fcn.00422c00
fstp qword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
call fcn.00422c00
movzx eax, byte [ebx]
add eax, 0xffffffd1
cmp eax, 3
ja case.default.0x42c184
jmp dword [eax*4 + 0x430a08]
fadd qword [ebp - 0x40]
jmp 0x42c21f
fsub qword [ebp - 0x40]
jmp 0x42c21f
fmul qword [ebp - 0x40]
jmp 0x42c21f
fld qword [ebp - 0x40]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x42c27b
fdivp st(1)
jmp 0x42c21f
fld qword [ebp - 0x40]
call fcn.004aa936
mov esi, eax
mov dword [ebp - 0x154], edx
call fcn.004aa936
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x74], edx
mov edx, esi
or edx, ecx
mov dword [ebp - 0x78], eax
je 0x42c27f
mov edx, esi
and edx, ecx
cmp edx, 0xffffffff
jne 0x42c201
mov dword [ebp - 0x154], 0
mov ecx, dword [ebp - 0x154]
mov esi, 1
push ecx
mov ecx, dword [ebp - 0x74]
push esi
push ecx
push eax
call fcn.004a6ca0
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1bc], edx
fild qword [ebp - 0x1c0]
sub esp, 8
fst qword [ebp - 0x40]
fstp qword [esp]
call fcn.00406d20
add esp, 8
test eax, eax
jne 0x42c27f
mov eax, dword [ebp - 0x28]
fld qword [ebp - 0x40]
mov dx, word [eax + 8]
fstp qword [eax]
mov ecx, 0x3e00
and dx, cx
or dx, 8
mov word [eax + 8], dx
mov dl, byte [ebp - 0x2c]
or dl, byte [ebp - 0x30]
test dl, 8
jne case.0x42b939.112
cmp byte [ebp - 0x49], 0
jne case.0x42b939.112
mov edi, eax
call fcn.00422c50
mov edi, dword [ebp - 0x20]
add ebx, 0x14
jmp 0x42b920
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x28]
call fcn.00422f00
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
test eax, eax
je case.0x42b939.112
push 0
push 0
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
call fcn.00422f60
add esp, 8
add ebx, 0x14
jmp 0x42b920
movzx ebx, byte [ebx + 3]
mov eax, dword [ebp - 0x1c]
lea edx, [ebx*4 + 0x1c]
push 0
push edx
call fcn.00404490
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x42d0b6
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
mov dword [ecx], 0
mov eax, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov edx, esi
sub edx, dword [ebp - 0x48]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 0x1a], bl
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edi
mov dword [esi + 0x10], ecx
mov word [esi], 0xf05a
mov ebx, esi
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebx + 0x10]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], eax
cmp dword [esi], eax
je 0x42c35a
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi], eax
js 0x42c35a
lea eax, [esi + ecx*4 + 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 8]
add eax, ecx
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edx, [eax + edx*8]
mov eax, dword [ebp - 0x2c]
mov dword [eax], edx
sub eax, 4
dec ecx
mov dword [ebp - 0x2c], eax
jns 0x42c33e
mov eax, dword [esi]
mov cx, word [eax + 8]
mov edx, 0x3e00
and cx, dx
mov edx, dword [ebp - 0x84]
or cx, 1
mov word [eax + 8], cx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x88]
mov byte [esi + 0x19], 0
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
movzx edx, byte [esi + 0x1a]
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xc]
lea ecx, [esi + 0x1c]
push ecx
push edx
push esi
call eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], edx
je 0x42c45a
cmp dword [esi + 0x14], 0
je 0x42c3ea
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
push ecx
call fcn.00428d10
add esp, 4
push eax
push 0x4b4e18
mov esi, edi
call fcn.00423b10
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0x14]
add esp, 8
mov dword [ebp - 0x14], eax
mov ecx, dword [ebx + 4]
mov esi, dword [ebp - 0x30]
mov edx, dword [esi + 0x10]
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
push ecx
push edx
add eax, 0xcc
call fcn.00426b10
add esp, 8
cmp dword [ebp - 0x14], 0
jne 0x42c6b7
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
test byte [eax + 8], 0x12
je 0x42c270
movzx ecx, byte [ebp - 0x4d]
mov eax, dword [esi]
call fcn.004225e0
mov ecx, dword [esi]
call fcn.00423050
mov edi, dword [ebp - 0x20]
test eax, eax
je case.0x42b939.112
push 0x4b5548
mov esi, edi
call fcn.00423b10
add esp, 4
mov dword [ebp - 0x14], 0x12
jmp 0x42c6ba
mov esi, dword [ebp - 0x30]
jmp 0x42c415
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + ecx*8]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dl, byte [ecx + 8]
or dl, byte [esi + 8]
mov dword [ebp - 0x28], eax
test dl, 1
je 0x42c498
call fcn.00422f00
add ebx, 0x14
jmp 0x42b920
call fcn.00422b90
mov ecx, esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
call fcn.00422b90
mov esi, eax
mov al, byte [ebx]
cmp al, 0x2b
jne 0x42c4bd
and dword [ebp - 0x60], esi
and dword [ebp - 0x5c], edx
jmp 0x42c59b
cmp al, 0x2c
jne 0x42c4cc
or dword [ebp - 0x60], esi
or dword [ebp - 0x5c], edx
jmp 0x42c59b
mov ecx, esi
or ecx, edx
je 0x42c59b
test edx, edx
jg 0x42c504
jl 0x42c4e0
test esi, esi
jae 0x42c4f9
mov cl, 0x5b
sub cl, al
mov al, cl
cmp edx, 0xffffffff
jl 0x42c504
jg 0x42c4f2
cmp esi, 0xffffffc0
jbe 0x42c504
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x42c52d
jg 0x42c504
cmp esi, 0x40
jb 0x42c52d
cmp dword [ebp - 0x5c], 0
jg 0x42c522
jl 0x42c512
cmp dword [ebp - 0x60], 0
jae 0x42c522
cmp al, 0x2d
je 0x42c522
or eax, 0xffffffff
cdq
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
jmp 0x42c59b
xor eax, eax
cdq
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
jmp 0x42c59b
mov edx, dword [ebp - 0x5c]
cmp al, 0x2d
mov eax, dword [ebp - 0x60]
mov ecx, esi
jne 0x42c54c
call fcn.004aa860
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
jmp 0x42c589
call fcn.004aab80
cmp dword [ebp - 0x5c], 0
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
jg 0x42c589
jl 0x42c56b
cmp dword [ebp - 0x60], 0
jae 0x42c589
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.004aa860
or dword [ebp - 0xc8], eax
or dword [ebp - 0xc4], edx
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [eax], ecx
mov cx, word [eax + 8]
mov dword [eax + 4], edx
mov edx, 0x3e00
and cx, dx
or cx, 4
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.00422cf0
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea ecx, [eax + edx*8]
movzx eax, word [ecx + 8]
mov dword [ebp - 0x38], ecx
test al, 4
jne 0x42c640
test al, 8
jne 0x42c614
test al, 2
je 0x42c622
push 1
mov eax, ecx
call fcn.0042b5e0
add esp, 4
jmp 0x42c61f
mov edi, dword [ebp - 0x38]
call fcn.00422c50
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x38]
movzx eax, word [ecx + 8]
mov esi, dword [ebp - 0x1c]
test al, 4
jne 0x42c640
cmp dword [ebx + 8], 0
jne 0x42e084
mov dword [ebp - 0x14], 0x14
jmp 0x42c6bd
and eax, 0x3e00
or eax, 4
mov word [ecx + 8], ax
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 4
lea esi, [edx + ecx*8]
je case.0x42b939.112
call fcn.00422d20
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov edx, 0x4000
test word [esi + 8], dx
je 0x42c699
call fcn.004227b0
mov dword [ebp - 0x14], eax
jmp 0x42c6a0
mov dword [ebp - 0x14], 0
mov dl, byte [ebp - 0x4d]
mov cl, byte [ebx + 8]
mov eax, esi
call fcn.00422e40
cmp dword [ebp - 0x14], 0
je 0x42d07f
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
cmp byte [esi + 0x45], 0
je 0x42c6ca
mov dword [ebp - 0x14], 7
cmp dword [edi + 0x6c], 0
jne 0x43065e
mov eax, dword [ebp - 0x14]
cmp eax, 0xc0a
je 0x43065e
mov ecx, 0x4b8414
cmp eax, 0x204
je 0x430646
and eax, 0xff
cmp eax, 0x1a
ja 0x43064b
mov eax, dword [eax*4 + 0x4b4b68]
test eax, eax
je 0x43064b
mov ecx, eax
jmp 0x43064b
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [ecx + 8]
mov dword [ebp - 0x18], eax
movzx eax, word [esi + 8]
mov dword [ebp - 0x28], eax
or eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], esi
test al, 1
je 0x42c7b1
mov al, byte [ebx + 3]
test al, al
jns 0x42c770
mov cl, byte [ebp - 0x28]
and cl, byte [ebp - 0x18]
test cl, 1
je 0x42c81f
test dword [ebp - 0x28], 0x100
jne 0x42c81f
xor eax, eax
jmp 0x42c8c5
test al, 0x20
je 0x42c7a1
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
mov cx, word [edx + eax*8 + 8]
lea eax, [edx + eax*8]
mov edx, 0x3e00
and cx, dx
or cx, 1
mov dword [ebp - 0x6c], 1
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x42b920
test al, 0x10
jne 0x42e084
add ebx, 0x14
jmp 0x42b920
mov dl, byte [ebx + 3]
and dl, 0x47
cmp dl, 0x43
jl 0x42c843
test al, 2
je 0x42c7fd
mov al, byte [ebp - 0x18]
and al, 0xe
cmp al, 2
jne 0x42c7e3
push 0
mov eax, ecx
call fcn.0042b5e0
movzx ecx, word [esi + 8]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x38]
add esp, 4
mov dl, byte [ebp - 0x28]
and dl, 0xe
cmp dl, 2
jne 0x42c7fd
push 0
mov eax, esi
call fcn.0042b5e0
mov ecx, dword [ebp - 0x38]
add esp, 4
mov al, byte [esi + 8]
and al, byte [ecx + 8]
test al, 4
je 0x42c8b4
mov eax, dword [esi]
mov edx, dword [ecx]
mov esi, dword [esi + 4]
mov ecx, dword [ecx + 4]
cmp esi, ecx
jl 0x42c83b
jg 0x42c81f
cmp eax, edx
jbe 0x42c829
mov eax, 1
jmp 0x42c8c5
cmp esi, ecx
jg 0x42c769
jl 0x42c83b
cmp eax, edx
jae 0x42c769
or eax, 0xffffffff
jmp 0x42c8c5
cmp dl, 0x42
jne 0x42c8b4
mov al, byte [ebp - 0x18]
test al, 2
jne 0x42c87e
test al, 0xc
je 0x42c87e
mov ecx, dword [ebp - 0x4d]
mov esi, dword [ebp - 0x38]
push 1
push ecx
call fcn.00422860
mov ax, word [ebp - 0x18]
mov dx, word [esi + 8]
xor dx, ax
mov ecx, 0x7e00
and dx, cx
add esp, 8
xor ax, dx
mov word [ebp - 0x18], ax
mov al, byte [ebp - 0x28]
test al, 2
jne 0x42c8b4
test al, 0xc
je 0x42c8b4
mov edx, dword [ebp - 0x4d]
mov esi, dword [ebp - 0x34]
push 1
push edx
call fcn.00422860
mov ax, word [ebp - 0x28]
mov cx, word [esi + 8]
xor cx, ax
mov edx, 0x7e00
and cx, dx
add esp, 8
xor ax, cx
mov word [ebp - 0x28], ax
mov edi, dword [ebx + 0x10]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
call fcn.00427960
mov edi, dword [ebp - 0x20]
movzx ecx, byte [ebx]
add ecx, 0xffffffdc
cmp ecx, 4
ja case.default.0x42c8d0
jmp dword [ecx*4 + 0x430a18]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x42c90a
mov esi, eax
jmp 0x42c90c
xor edx, edx
test eax, eax
sets dl
mov esi, edx
jmp 0x42c90c
xor ecx, ecx
test eax, eax
setle cl
jmp 0x42c90a
xor edx, edx
test eax, eax
setg dl
mov esi, edx
jmp 0x42c90c
xor ecx, ecx
test eax, eax
setns cl
mov esi, ecx
movzx edx, word [ebp - 0x18]
mov ecx, dword [ebp - 0x38]
mov word [ecx + 8], dx
movzx edx, word [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
mov word [ecx + 8], dx
test byte [ebx + 3], 0x20
je 0x42c97a
mov ecx, dword [ebx + 8]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx + edx*8]
xor edx, edx
test esi, esi
setne dl
test byte [ebx + 3], 8
mov dword [ebp - 0x6c], eax
mov esi, edx
je 0x42c956
xor eax, eax
cmp byte [ebx], 0x25
sete al
cmp eax, esi
je case.0x42b939.112
mov dx, word [ecx + 8]
mov eax, 0x3e00
and dx, ax
or dx, 4
mov eax, esi
mov word [ecx + 8], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x42b920
test esi, esi
jne 0x42e084
add ebx, 0x14
jmp 0x42b920
cmp dword [ebp - 0x6c], 0
jne 0x42e084
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 0x10]
add eax, 4
mov dword [ebp - 0xa4], eax
add ebx, 0x14
jmp 0x42b920
test byte [ebx + 3], 1
jne 0x42c9c0
mov dword [ebp - 0xa4], 0
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebx + 8]
xor esi, esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x44], edx
test eax, eax
jle 0x42ca5c
add ecx, 0x14
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0xa4]
test eax, eax
je 0x42c9f3
mov ecx, dword [eax + esi*4]
jmp 0x42c9f5
mov ecx, esi
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x6c], edx
mov edx, dword [eax + 0x10]
movzx eax, byte [edx + esi]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x28], eax
lea eax, [ecx + edx]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [ebp - 0x2c]
add eax, ecx
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
mov edi, dword [ebp - 0x6c]
call fcn.00427960
mov dword [ebp - 0x6c], eax
test eax, eax
jne 0x42ca4e
add dword [ebp - 0x30], 4
inc esi
cmp esi, dword [ebp - 0x34]
jl 0x42c9e4
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0xa4], eax
add ebx, 0x14
jmp 0x42b920
cmp dword [ebp - 0x28], 0
je 0x42ca5c
mov edx, dword [ebp - 0x6c]
neg edx
mov dword [ebp - 0x6c], edx
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0xa4], 0
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x48]
test eax, eax
jns 0x42ca92
mov ebx, dword [ebx + 4]
lea eax, [ebx + ebx*4]
lea edx, [ecx + eax*4 - 0x14]
mov ebx, edx
mov dword [ebp - 0x18], edx
add ebx, 0x14
jmp 0x42b920
jne 0x42caab
mov ebx, dword [ebx + 8]
lea eax, [ebx + ebx*4]
lea edx, [ecx + eax*4 - 0x14]
mov ebx, edx
mov dword [ebp - 0x18], edx
add ebx, 0x14
jmp 0x42b920
mov ebx, dword [ebx + 0xc]
lea eax, [ebx + ebx*4]
lea edx, [ecx + eax*4 - 0x14]
mov ebx, edx
mov dword [ebp - 0x18], edx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x42cadc
mov esi, 2
jmp 0x42caee
call fcn.00422b90
or eax, edx
je 0x42caec
mov esi, 1
jmp 0x42caee
xor esi, esi
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
test byte [eax + edx*8 + 8], 1
lea ecx, [eax + edx*8]
je 0x42cb08
mov eax, 2
jmp 0x42cb1a
call fcn.00422b90
or eax, edx
je 0x42cb18
mov eax, 1
jmp 0x42cb1a
xor eax, eax
cmp byte [ebx], 0x1c
jne 0x42cb2c
lea ecx, [eax + esi*2]
movzx eax, byte [esi + ecx + 0x4b1ae0]
jmp 0x42cb37
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x4b1aec]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
cmp eax, 2
jne 0x42cb64
mov ax, word [ecx + 8]
mov edx, 0x3e00
and ax, dx
or ax, 1
mov word [ecx + 8], ax
add ebx, 0x14
jmp 0x42b920
cdq
mov dword [ecx], eax
mov ax, word [ecx + 8]
mov dword [ecx + 4], edx
mov edx, 0x3e00
and ax, dx
or ax, 4
mov word [ecx + 8], ax
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov eax, esi
mov dword [ebp - 0x38], ecx
call fcn.00422f00
mov ecx, dword [ebp - 0x38]
test byte [ecx + 8], 1
jne case.0x42b939.112
mov eax, 4
mov word [esi + 8], ax
call fcn.00422b90
or eax, edx
jne 0x42cbd7
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x42b920
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edx, [esi + ecx*8]
lea esi, [esi + eax*8]
mov eax, esi
mov dword [ebp - 0x38], edx
call fcn.00422f00
mov ecx, dword [ebp - 0x38]
test byte [ecx + 8], 1
jne case.0x42b939.112
mov edx, 4
mov word [esi + 8], dx
call fcn.00422b90
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [edi + 0x58]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x42e084
mov dword [ebx + 4], eax
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
lea eax, [edx + ecx*8]
je 0x42cc64
mov eax, dword [ebx + 0xc]
jmp 0x42cc8b
call fcn.00422c00
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x42cc7b
mov eax, 1
jmp 0x42cc7d
xor eax, eax
cmp byte [ebx], 0x16
jne 0x42cc8b
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x42e084
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
test byte [eax + edx*8 + 8], 1
jne 0x42e084
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je 0x42e084
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x11c], edx
lea ecx, [ebp - 0x9c]
lea edx, [ebp - 0x11c]
mov dword [ebp - 0x9c], eax
call fcn.00427050
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x11c]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov edx, dword [ebx + 0x48]
mov dword [ebp - 0x34], edx
mov edx, dword [ebx + 0x1c]
mov dword [ebp - 0x28], eax
cmp edx, dword [edi + 0x20]
je 0x42ce21
cmp byte [ebx + 2], 0
je 0x42cd6c
cmp byte [ebx], 3
jne 0x42cd5c
mov eax, dword [ebx + 0x28]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x50], eax
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0xa0], eax
mov dword [ebx + 0x4c], ecx
jmp 0x42cdb5
call fcn.00422f00
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov esi, dword [ebx + 0x28]
mov eax, esi
mov dword [ebp - 0x3c], esi
call fcn.0041ad00
mov edx, dword [esi + 0x1c]
mov dword [ebx + 0x50], edx
mov edx, dword [ebp - 0x3c]
lea esi, [ebp - 0xa0]
call fcn.0041b210
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0x50]
cmp eax, dword [ebp - 0xa0]
ja 0x42cda0
mov dword [ebx + 0x54], eax
jmp 0x42cdb5
mov ecx, dword [ebp - 0x1c]
cmp eax, dword [ecx + 0x60]
ja 0x42c43f
mov edx, dword [ebp - 0xa0]
mov dword [ebx + 0x54], edx
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x1c], eax
mov ecx, dword [ebx + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x42cdd4
movzx eax, al
mov dword [ebp - 0x100], eax
mov ecx, 1
jmp 0x42cde8
lea esi, [ebp - 0x100]
call fcn.00407d50
movzx ecx, al
mov eax, dword [ebp - 0x100]
movzx ecx, cl
mov dword [ebx + 0x30], ecx
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov word [ebx + 0x3a], dx
mov dword [ecx], eax
cmp dword [ebp - 0xa0], eax
jae 0x42ceaf
xor ecx, ecx
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x54], ecx
cmp eax, 0x18003
ja 0x4303c2
cmp eax, dword [ebx + 0x50]
ja 0x4303c2
movzx ecx, word [ebx + 0x3a]
mov eax, dword [ebp - 0x9c]
cmp ecx, eax
jg 0x42d031
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebp - 0x34]
cmp edx, dword [ecx]
jae 0x42cfd7
cmp dword [ebx + 0x4c], 0
jne 0x42cebf
xor eax, eax
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x204], eax
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], eax
mov ecx, dword [ecx]
mov edx, dword [ebx + 0x28]
push eax
lea eax, [ebp - 0x210]
call fcn.00423490
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov eax, dword [ebp - 0x200]
mov dword [ebp - 0x30], eax
jmp 0x42cec5
test eax, eax
je 0x42ce21
mov edx, dword [ebx + 0x4c]
mov dword [ebp - 0x30], edx
jmp 0x42cec5
mov ecx, dword [ebx + 0x4c]
mov dword [ebp - 0x30], ecx
movzx esi, word [ebx + 0x3a]
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + esi*4]
mov edx, dword [ebp - 0x30]
mov edi, dword [ebx + 0x30]
mov eax, dword [eax]
add edi, edx
add eax, edx
lea edx, [ebx + esi*4 + 0x58]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x38], edx
jmp 0x42cf00
movzx eax, byte [edi]
mov dword [ebp - 0x54], eax
cmp eax, 0x80
jae 0x42cf29
movzx eax, al
movzx eax, byte [eax + 0x4b1a08]
cdq
inc edi
add ecx, eax
adc dword [ebp - 0x94], edx
mov dword [ebp - 0x98], ecx
jmp 0x42cf56
lea esi, [ebp - 0x54]
mov ecx, edi
call fcn.00407d50
movzx ecx, al
mov eax, dword [ebp - 0x54]
add edi, ecx
call fcn.004271d0
add dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x98]
mov esi, dword [ebp - 0x2c]
adc dword [ebp - 0x94], 0
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov dword [eax], edx
add eax, 4
inc esi
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x34]
mov dword [eax + esi*4], ecx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x2c], esi
cmp esi, dword [ebp - 0x9c]
jg 0x42cf7f
cmp edi, eax
jb 0x42cf00
jmp 0x42cf83
cmp edi, eax
jb 0x42cfa2
cmp edi, eax
ja 0x4303d4
cmp ecx, dword [ebx + 0x50]
jne 0x4303d4
xor eax, eax
cmp dword [ebp - 0x94], eax
jne 0x4303d4
xor eax, eax
cmp dword [ebp - 0x94], eax
ja 0x4303d4
jb 0x42cfbb
cmp ecx, dword [ebx + 0x50]
ja 0x4303d4
sub edi, dword [ebp - 0x30]
mov word [ebx + 0x3a], si
mov dword [ebx + 0x30], edi
cmp dword [ebx + 0x4c], eax
jne 0x42cfe1
lea eax, [ebp - 0x210]
call fcn.00422b10
jmp 0x42cfde
mov dword [ebp - 0x54], 0
mov edx, dword [ebp - 0x54]
movzx ecx, word [ebx + 0x3a]
mov esi, dword [ebp - 0x9c]
cmp ecx, esi
jg 0x42d040
mov eax, dword [ebp - 0x18]
cmp byte [eax + 1], 0xf9
jne 0x42d01b
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0x28]
push 0x800
push edx
push eax
call fcn.004230b0
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
add esp, 0xc
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebp - 0x28]
call fcn.00422f00
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + eax*4 + 0x58]
mov esi, dword [ebp - 0x9c]
mov dword [ebp - 0x54], ecx
mov edx, ecx
mov edi, dword [ebp - 0x28]
mov eax, 0x2460
test word [edi + 8], ax
je 0x42d058
mov eax, edi
call fcn.00422f00
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebx + 0x54]
mov eax, dword [ebp - 0x34]
cmp ecx, dword [eax + esi*4 + 4]
jb 0x42d143
mov ebx, dword [ebx + 0x4c]
add ebx, dword [eax + esi*4]
cmp edx, 0xc
jae 0x42d08a
mov eax, edi
mov ecx, ebx
call fcn.004272f0
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
lea esi, [edx - 0xc]
mov dl, byte [ebp - 0x4d]
shr esi, 1
lea ecx, [esi + 2]
mov dword [edi + 0xc], esi
mov byte [edi + 0xa], dl
cmp dword [edi + 0x18], ecx
jge 0x42d100
mov eax, 1
mov word [edi + 8], ax
xor eax, eax
mov edx, edi
call fcn.00422600
test eax, eax
je 0x42d106
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
cmp byte [esi + 0x45], 0
jne 0x42d0e5
cmp byte [esi + 0x46], 0
jne 0x42d0e5
cmp dword [esi + 0xa8], 0
mov byte [esi + 0x45], 1
jle 0x42d0df
mov dword [esi + 0xf8], 1
inc dword [esi + 0x100]
push 0x4b587c
mov esi, edi
call fcn.00423b10
add esp, 4
mov dword [ebp - 0x14], 7
jmp 0x42c6ba
mov ecx, dword [edi + 0x14]
mov dword [edi + 0x10], ecx
mov edx, dword [edi + 0x10]
push esi
push ebx
push edx
call fcn.004a7950
mov eax, dword [edi + 0x10]
mov ebx, dword [ebp - 0x18]
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0x54]
add esp, 0xc
and eax, 1
mov byte [esi + ecx + 1], 0
mov dx, word [eax*2 + 0x4b1af8]
mov word [edi + 8], dx
mov edi, dword [ebp - 0x20]
add ebx, 0x14
jmp 0x42b920
movzx eax, byte [ebp - 0x4d]
mov ecx, dword [ebp - 0x18]
mov byte [edi + 0xa], al
mov al, byte [ecx + 3]
test al, 0xc0
je 0x42d162
cmp edx, 0xc
jb 0x42d15e
test dl, 1
je 0x42d16f
test al, al
js 0x42d16f
mov eax, edx
call fcn.004271d0
mov ecx, eax
test ecx, ecx
jne 0x42d189
mov eax, edi
mov ecx, 0x4bce4c
call fcn.004272f0
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + esi*4]
mov edx, dword [ebx + 0x28]
push eax
mov eax, edi
call fcn.00423490
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov esi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x54]
mov ecx, dword [esi + 0x10]
mov eax, esi
call fcn.004272f0
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
mov ecx, 0xefff
and word [esi + 8], cx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea ecx, [eax + edx*8]
mov al, byte [esi]
mov dword [ebp - 0x38], ecx
test al, al
je case.0x42b939.112
mov edx, dword [ebp - 0x4d]
mov ecx, dword [ebp - 0x38]
push edx
inc esi
call fcn.0042b660
mov al, byte [esi]
add dword [ebp - 0x38], 0x28
add esp, 4
test al, al
jne 0x42d1eb
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebx + 0x10]
xor eax, eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
lea eax, [eax + eax*4]
mov dword [ebp - 0x34], edx
lea edx, [edx + eax*8 - 0x28]
movzx eax, byte [edi + 0x8f]
mov dword [ebp - 0x3c], edx
lea edx, [ebx + ebx*4]
mov dword [ebp - 0x2c], eax
lea eax, [ecx + edx*8]
mov dword [ebp - 0x28], eax
test esi, esi
je 0x42d281
mov ebx, dword [ebp - 0x34]
mov al, byte [esi]
mov ecx, dword [ebp - 0x4d]
push ecx
mov ecx, ebx
call fcn.0042b660
mov al, byte [esi + 1]
inc esi
add esp, 4
add ebx, 0x28
test al, al
jne 0x42d268
mov esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x2c]
push edx
lea ebx, [ebp - 0xe0]
mov edx, esi
call fcn.004270a0
mov ebx, eax
mov eax, 0x4000
add esp, 4
mov dword [ebp - 0x38], ebx
mov dword [esi + 0x1c], ebx
test word [esi + 8], ax
je 0x42d2e2
mov ecx, dword [ebp - 0xd8]
or ecx, dword [ebp - 0xd4]
je 0x42d2c8
call fcn.004227b0
test eax, eax
jne 0x42d0b9
jmp 0x42d2e2
mov ecx, dword [esi]
mov ebx, dword [ebp - 0x38]
mov eax, ecx
cdq
add dword [ebp - 0xb8], eax
adc dword [ebp - 0xb4], edx
sub dword [ebp - 0xe0], ecx
mov edx, dword [ebp - 0xe0]
add dword [ebp - 0xd8], edx
adc dword [ebp - 0xd4], 0
cmp ebx, 0x7f
ja 0x42d301
mov eax, 1
jmp 0x42d30c
push 0
push ebx
call fcn.00407dc0
add esp, 8
mov ebx, dword [ebp - 0x44]
add ebx, eax
mov dword [ebp - 0x44], ebx
cmp esi, dword [ebp - 0x34]
je 0x42d321
sub esi, 0x28
jmp 0x42d284
cmp ebx, 0x7e
jle 0x42d345
mov eax, ebx
cdq
push edx
push eax
call fcn.00407dc0
mov esi, eax
add ebx, esi
mov eax, ebx
cdq
push edx
push eax
call fcn.00407dc0
add esp, 0x10
cmp esi, eax
jge 0x42d346
inc ebx
mov esi, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xd4]
mov eax, ebx
cdq
add esi, eax
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x60]
adc ecx, edx
mov dword [ebp - 0x148], esi
add esi, dword [ebp - 0xb8]
mov dword [ebp - 0x13c], edx
adc ecx, dword [ebp - 0xb4]
cdq
cmp ecx, edx
jg 0x42c43f
jl 0x42d390
cmp esi, eax
ja 0x42c43f
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x148]
cmp dword [esi + 0x18], ecx
jge 0x42d3c6
xor eax, eax
mov edx, esi
call fcn.00422600
test eax, eax
jne 0x42d0b9
mov esi, dword [esi + 0x10]
mov dword [ebp - 0x2c], esi
cmp ebx, 0x80
jae 0x42d3d3
mov byte [esi], bl
mov eax, 1
jmp 0x42d3e9
mov edx, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], edx
jmp 0x42d3af
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x140]
push eax
push ecx
call fcn.00407b70
add esp, 8
movzx edx, al
mov dword [ebp - 0x44], ebx
mov ebx, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
jmp 0x42d400
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x38], ecx
cmp ecx, 0x80
jae 0x42d41e
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov byte [eax + edx], cl
mov eax, 1
jmp 0x42d435
mov esi, dword [ebp - 0x30]
push 0
push ecx
mov ecx, dword [ebp - 0x2c]
lea esi, [esi + ecx]
call fcn.00407b70
mov ecx, dword [ebp - 0x38]
add esp, 8
mov esi, dword [ebp - 0x44]
movzx edx, al
mov eax, dword [ebp - 0x2c]
add dword [ebp - 0x30], edx
lea edi, [esi + eax]
mov eax, ebx
call fcn.004271f0
add esi, eax
add ebx, 0x28
mov dword [ebp - 0x44], esi
cmp ebx, dword [ebp - 0x3c]
jbe 0x42d400
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x148]
mov edx, 0x10
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0xb8]
mov word [eax + 8], dx
mov edx, ecx
or edx, dword [ebp - 0xb4]
je 0x42d488
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
mov byte [eax + 0xa], 1
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x28]
lea edx, [ebp - 0x130]
xor esi, esi
push edx
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x12c], esi
call fcn.0041ffe0
add esp, 4
mov dword [ebp - 0x14], eax
cmp eax, esi
jne 0x42c6b7
mov eax, dword [ebp - 0x18]
mov edx, edi
call fcn.0042b830
mov ecx, dword [ebp - 0x130]
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x18]
mov dword [eax], ecx
mov dword [eax + 4], edx
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], eax
test ecx, ecx
jne 0x42d5c8
cmp dword [esi + 0xa4], ecx
jg 0x43017c
call fcn.00406d50
mov ebx, eax
mov eax, dword [esi + 0x1b4]
add eax, dword [esi + 0x1b0]
mov dword [ebp - 0x3c], ebx
push eax
push 0
push esi
call fcn.0046c380
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
push eax
add ebx, 0x21
push ebx
mov eax, esi
call fcn.00404490
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x42d07f
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x2c]
inc ecx
push ecx
lea eax, [ebx + 0x20]
push edx
push eax
mov dword [ebx], eax
call fcn.004a7950
add esp, 0xc
cmp byte [esi + 0x43], 0
je 0x42d584
mov byte [esi + 0x43], 0
mov byte [esi + 0x4b], 1
jmp 0x42d58a
inc dword [esi + 0x1b0]
mov eax, dword [esi + 0x1a8]
mov dword [ebx + 0x18], eax
mov ecx, dword [esi + 0x1b8]
mov dword [esi + 0x1a8], ebx
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x1bc]
mov dword [ebx + 0xc], edx
mov eax, dword [esi + 0x1c0]
mov dword [ebx + 0x10], eax
mov ecx, dword [esi + 0x1c4]
mov dword [ebx + 0x14], ecx
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, dword [esi + 0x1a8]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], eax
test eax, eax
je 0x42d601
lea esp, [esp]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [edx]
call fcn.00407070
test eax, eax
je 0x42d620
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x18]
inc dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x42d5e0
mov ecx, dword [ebp - 0x2c]
push ecx
push 0x4b5654
mov esi, edi
call fcn.00423b10
add esp, 8
mov dword [ebp - 0x14], 1
jmp 0x42c6ba
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp dword [esi + 0xa4], ecx
jle 0x42d636
cmp eax, 1
je 0x430197
mov edx, dword [ebp - 0x30]
cmp dword [edx + 0x18], ecx
jne 0x42d688
cmp byte [esi + 0x4b], cl
je 0x42d688
mov dword [ebp - 0x2c], 1
cmp eax, 1
jne 0x42d68b
push eax
mov eax, edi
call fcn.004265d0
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x430738
mov eax, edi
mov byte [esi + 0x43], 1
call fcn.00426640
cmp eax, 5
je 0x4303f7
mov byte [esi + 0x4b], 0
mov eax, dword [edi + 0x28]
mov dword [ebp - 0x14], eax
jmp 0x42d74d
mov dword [ebp - 0x2c], ecx
mov edx, dword [esi + 0x1b0]
sub edx, dword [ebp - 0x34]
dec edx
mov dword [ebp - 0x34], edx
cmp eax, 2
jne 0x42d6f7
mov eax, dword [esi + 0x18]
shr eax, 1
and eax, 1
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
cmp dword [esi + 0x14], ecx
jle 0x42d6fa
xor edx, edx
cmp eax, ecx
sete dl
xor ebx, ebx
mov dword [ebp - 0x44], edx
lea esp, [esp]
mov eax, dword [ebp - 0x44]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebx + ecx + 4]
push eax
push 0x204
push edx
call fcn.0041a670
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6bd
mov eax, dword [ebp - 0x38]
inc eax
add ebx, 0x10
mov dword [ebp - 0x38], eax
cmp eax, dword [esi + 0x14]
jl 0x42d6c0
xor ecx, ecx
jmp 0x42d6fa
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
cmp dword [esi + 0x14], ecx
jle 0x42d735
xor ebx, ebx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
push eax
mov eax, dword [ebx + edx + 4]
push ecx
call fcn.0041a9f0
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6bd
mov eax, dword [ebp - 0x38]
inc eax
add ebx, 0x10
mov dword [ebp - 0x38], eax
cmp eax, dword [esi + 0x14]
jl 0x42d704
cmp dword [ebp - 0x3c], 0
je 0x42d74d
mov eax, esi
call fcn.004286f0
mov eax, esi
call fcn.004435a0
or dword [esi + 0x18], 2
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x1a8], ebx
je 0x42d7be
jmp 0x42d760
cmp dword [esi + 0x1c8], 0
mov eax, dword [esi + 0x1a8]
mov ecx, dword [eax + 0x18]
mov dword [esi + 0x1a8], ecx
je 0x42d781
mov ecx, esi
call fcn.00404160
jmp 0x42d7b0
cmp eax, dword [esi + 0x120]
jb 0x42d7a7
cmp eax, dword [esi + 0x124]
jae 0x42d7a7
mov edx, dword [esi + 0x11c]
mov dword [eax], edx
dec dword [esi + 0x108]
mov dword [esi + 0x11c], eax
jmp 0x42d7b0
push eax
call fcn.004040f0
add esp, 4
dec dword [esi + 0x1b0]
cmp dword [esi + 0x1a8], ebx
jne 0x42d760
cmp dword [ebp - 0x28], 1
jne 0x42d7e8
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x1a8], eax
mov eax, ebx
mov ecx, esi
call fcn.004041a0
cmp dword [ebp - 0x2c], 0
jne 0x42d958
dec dword [esi + 0x1b0]
jmp 0x42d81c
cmp dword [ebp - 0x2c], 0
mov ecx, dword [ebx + 8]
mov dword [esi + 0x1b8], ecx
mov edx, dword [ebx + 0xc]
mov dword [esi + 0x1bc], edx
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x1c0], eax
mov ecx, dword [ebx + 0x14]
mov dword [esi + 0x1c4], ecx
je 0x42d81c
cmp dword [ebp - 0x28], 2
jne 0x42d958
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
push edx
push eax
push esi
call fcn.0046c380
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6bd
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 8]
mov esi, dword [ebp - 0x1c]
test ecx, ecx
je 0x42d85a
test dword [esi + 0x18], 0x4000000
jne 0x430516
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x42d92e
push ecx
mov ecx, eax
push ecx
call fcn.00419900
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x430522
cmp dword [ebx + 8], eax
je 0x42d909
test byte [edi + 0x90], 0x40
je 0x42d909
cmp byte [esi + 0x43], al
je 0x42d8a5
cmp dword [esi + 0xa0], 1
jle 0x42d909
cmp dword [edi + 0x30], 0
jne 0x42d8c0
mov edx, dword [esi + 0x1b0]
inc dword [esi + 0x1b4]
add edx, dword [esi + 0x1b4]
mov dword [edi + 0x30], edx
mov eax, dword [edi + 0x30]
dec eax
push eax
push 0
push esi
call fcn.0046c380
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42d8e5
mov eax, dword [edi + 0x30]
mov ecx, dword [ebp - 0x2c]
call fcn.0041a990
mov dword [ebp - 0x14], eax
mov ecx, dword [esi + 0x1b8]
mov dword [edi + 0x48], ecx
mov edx, dword [esi + 0x1bc]
mov dword [edi + 0x4c], edx
mov eax, dword [esi + 0x1c0]
mov dword [edi + 0x50], eax
mov ecx, dword [esi + 0x1c4]
mov dword [edi + 0x54], ecx
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0xdc]
push edx
push 1
call fcn.0041ff00
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x10]
add esp, 8
add eax, eax
mov edx, dword [ecx + eax*8 + 0xc]
mov eax, dword [edx + 4]
jmp 0x42d93a
mov dword [ebp - 0xdc], 0
xor eax, eax
cmp byte [ebx + 3], 0
je 0x42d958
mov ecx, dword [ebp - 0xdc]
cmp ecx, dword [ebx + 0xc]
jne 0x43019e
cmp eax, dword [ebx + 0x10]
jne 0x43019e
cmp dword [ebp - 0x14], 0
jne 0x42c6bd
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x14c]
push edx
mov edx, dword [ebp - 0x1c]
push eax
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
call fcn.0041ff00
add esp, 8
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov ecx, eax
mov eax, dword [ebp - 0x14c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl eax, 4
add eax, dword [esi + 0x10]
push ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [eax + 4]
push edx
call fcn.0041ff60
mov edx, eax
mov eax, dword [ebx + 8]
add esp, 8
mov dword [ebp - 0x14], edx
cmp eax, 1
jne 0x42d9ee
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], 2
jmp 0x42d9ff
cmp eax, 2
jne 0x42d9ff
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + 0xc]
mov cl, byte [ebx + 0xc]
mov byte [eax + 0x4c], cl
cmp dword [ebx + 4], 1
jne 0x42da13
mov eax, esi
call fcn.004286f0
and dword [edi + 0x90], 0xfffffffe
test edx, edx
jne 0x42c6bd
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov esi, dword [ecx + eax*4]
test esi, esi
je case.0x42b939.104
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
je 0x42db3c
test byte [edi + 0x90], 1
jne 0x43054f
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebx + 8]
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x34], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x3c], esi
mov ecx, dword [eax + 4]
mov dword [ebp - 0x28], ecx
cmp dl, 0x69
jne 0x42da97
movzx ecx, byte [ebx + 3]
mov edx, dword [eax + 0xc]
mov al, byte [edx + 0x4c]
and ecx, 8
or ecx, 4
mov dword [ebp - 0x30], ecx
cmp al, byte [edi + 0x8f]
jae 0x42da9e
mov byte [edi + 0x8f], al
jmp 0x42da9e
mov dword [ebp - 0x30], 0
test byte [ebx + 3], 0x10
je 0x42dab7
mov ecx, dword [ebp - 0x24]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
call fcn.00422cf0
mov edx, dword [esi]
mov dword [ebp - 0x3c], edx
mov al, byte [ebx + 1]
cmp al, 0xfb
jne 0x42dad3
mov ecx, dword [ebx + 0x10]
movzx eax, word [ecx + 8]
mov dword [ebp - 0x44], ecx
movzx ecx, word [ecx + 6]
add eax, ecx
mov dword [ebp - 0x2c], eax
jmp 0x42dadd
cmp al, 0xf5
jne 0x42dadd
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
push 0
push eax
push ecx
call fcn.0042b4f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x42d0b6
mov edx, dword [esi + 0x28]
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x3c]
or dword [esi + 8], 4
push edx
push edi
push ecx
mov ecx, dword [ebp - 0x28]
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
call fcn.0041ab40
mov edx, dword [ebp - 0x18]
mov dword [esi + 0x2c], edi
mov edi, dword [ebp - 0x20]
add esp, 0xc
cmp byte [edx + 1], 0xfb
mov dword [ebp - 0x14], eax
setne al
mov byte [esi + 4], al
mov ebx, edx
mov cl, byte [ebx + 3]
mov edx, dword [esi + 0x28]
and cl, 3
cmp dword [ebp - 0x14], 0
mov byte [edx + 0x43], cl
jne 0x42c6ba
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
push 0
push 0xffffffffffffffff
push eax
call fcn.0042b4f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x42d0b6
mov ecx, dword [ebp - 0x18]
mov eax, 1
or dword [esi + 8], eax
mov byte [esi + 2], al
movzx edx, byte [ecx + 3]
push 0x41e
or edx, 5
push edx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
push 0
push eax
lea ecx, [esi + 0xc]
call fcn.00418890
add esp, 0x10
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov ecx, dword [esi + 0xc]
push 1
push ecx
call fcn.00419900
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax + 0x10]
mov dword [esi + 0x2c], ebx
test ebx, ebx
je 0x42dc1e
movzx edx, byte [eax + 3]
or edx, 2
push edx
lea eax, [ebp - 0x160]
push eax
mov eax, dword [esi + 0xc]
call fcn.0041f990
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42dc18
mov ecx, dword [esi + 0x28]
mov eax, dword [ebp - 0x160]
push ecx
mov ecx, dword [esi + 0xc]
push ebx
push 4
call fcn.0041ab40
add esp, 0xc
mov dword [ebp - 0x14], eax
mov byte [esi + 4], 0
jmp 0x42dc3d
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0xc]
push edx
push 0
push 4
mov eax, 1
call fcn.0041ab40
add esp, 0xc
mov dword [ebp - 0x14], eax
mov byte [esi + 4], 1
cmp dword [ebp - 0x14], 0
jne 0x42c6b7
mov ecx, dword [ebp - 0x18]
xor eax, eax
cmp byte [ecx + 3], 8
mov ebx, ecx
setne al
add eax, eax
add eax, eax
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebx + 8]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
push 1
push 0xffffffffffffffff
push edx
call fcn.0042b4f0
add esp, 0xc
test eax, eax
je 0x42d0b6
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x10]
push eax
mov dword [eax + 0x2c], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x1c]
push eax
push ecx
call fcn.00432020
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov esi, ecx
add esi, 1
mov dword [ebp - 0x264], edx
adc edx, 0
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edx
mov eax, ecx
mov ecx, dword [ebp - 0x264]
or eax, ecx
je 0x42e084
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 0xc]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
push 3
push 0xffffffffffffffff
push ecx
call fcn.0042b4f0
add esp, 0xc
test eax, eax
je 0x42d0b6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x18]
mov cl, 1
mov byte [eax + 2], cl
mov edx, dword [edx + 8]
mov dword [eax + 0x28], edx
mov byte [eax + 4], cl
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov eax, dword [ecx + eax*4]
push edi
call fcn.004258e0
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
add esp, 4
mov dword [eax + edx*4], 0
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x70]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 4], 0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0
mov byte [esi + 2], 0
je 0x42de31
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
mov dl, byte [ecx + eax*8 + 8]
lea eax, [ecx + eax*8]
and dl, 0xe
mov dword [ebp - 0x34], eax
cmp dl, 2
jne 0x42dd9a
push 0
call fcn.0042b5e0
add esp, 4
mov ecx, dword [ebp - 0x34]
call fcn.00422b90
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x34]
movzx eax, word [eax + 8]
mov dword [ebp - 0x10c], edx
test al, 4
jne 0x42ddf2
test al, 8
je 0x42e084
fild qword [ebp - 0x110]
mov ecx, dword [ebp - 0x34]
fcom qword [ecx]
fnstsw ax
test ah, 0x41
jne 0x42dde0
test byte [ebp - 0x28], 1
fstp st(0)
jne 0x42ddf2
dec dword [ebp - 0x28]
jmp 0x42ddf2
fcomp qword [ecx]
fnstsw ax
test ah, 5
jp 0x42ddf2
test byte [ebp - 0x28], 1
je 0x42ddf2
inc dword [ebp - 0x28]
mov edx, dword [ebp - 0x10c]
mov ebx, dword [ebp - 0x110]
mov eax, dword [esi + 0x28]
lea ecx, [ebp - 0x68]
push ecx
push 0
push edx
push ebx
push 0
call fcn.0041b620
mov ecx, dword [ebp - 0x10c]
add esp, 0x14
mov dword [ebp - 0x14], eax
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], ecx
test eax, eax
jne 0x42c6ba
xor ebx, ebx
jmp 0x42deb8
mov edx, dword [esi + 0x28]
test byte [edx + 0x43], 2
je 0x42de41
mov dword [ebp - 0x2c], 1
mov eax, dword [esi + 0x2c]
mov edx, dword [ebp - 0x28]
mov cx, word [ebx + 0x10]
mov ebx, dword [ebx + 0xc]
dec edx
mov dword [ebp - 0x170], eax
test dl, 1
mov edx, dword [ebp - 0x24]
sete al
mov word [ebp - 0x168], cx
lea ecx, [ebx + ebx*4]
mov byte [ebp - 0x162], 0
lea eax, [eax + eax - 1]
mov byte [ebp - 0x166], al
lea eax, [edx + ecx*8]
lea ecx, [ebp - 0x68]
push ecx
push 0
push 0
lea edx, [ebp - 0x170]
mov dword [ebp - 0x16c], eax
mov eax, dword [esi + 0x28]
push 0
push edx
call fcn.0041b620
add esp, 0x14
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6ba
xor ebx, ebx
cmp dword [ebp - 0x2c], ebx
je 0x42deb8
cmp byte [ebp - 0x162], bl
je 0x42df26
mov ecx, dword [ebp - 0x28]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], ebx
mov eax, dword [ebp - 0x68]
cmp ecx, 0x19
jl 0x42deec
cmp eax, ebx
jl 0x42deda
jne 0x42ded5
cmp ecx, 0x1a
je 0x42deda
mov dword [ebp - 0x68], ebx
jmp 0x42df2f
lea eax, [ebp - 0x68]
mov dword [ebp - 0x68], ebx
mov ecx, dword [esi + 0x28]
push eax
push ecx
call fcn.0041bcd0
jmp 0x42df18
cmp eax, ebx
jg 0x42df08
jne 0x42def7
cmp ecx, 0x17
je 0x42df08
mov edx, dword [esi + 0x28]
xor eax, eax
cmp byte [edx + 0x42], 1
setne al
mov dword [ebp - 0x68], eax
jmp 0x42df26
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x68], ebx
mov edx, dword [esi + 0x28]
push ecx
push edx
call fcn.0041bee0
add esp, 8
mov dword [ebp - 0x14], eax
cmp eax, ebx
jne 0x42c6ba
cmp dword [ebp - 0x68], ebx
jne 0x42e081
cmp dword [ebp - 0x2c], ebx
je 0x42d07f
add dword [ebp - 0x18], 0x14
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
cmp dword [ebx + 0x10], 0
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov esi, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea eax, [eax + edx*8]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x34], eax
jle 0x42df91
mov ecx, dword [esi + 0x2c]
mov dx, word [ebx + 0x10]
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x278], ecx
mov word [ebp - 0x270], dx
lea eax, [ebp - 0x278]
mov dword [ebp - 0x2c], 0
jmp 0x42dfe4
mov eax, dword [ebp - 0x30]
mov esi, dword [eax + 0x2c]
call fcn.00427470
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x42d0b9
mov esi, dword [ebp - 0x34]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x42dfbd
call fcn.004227b0
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x10]
push edx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [eax + 0x2c]
push edx
push ecx
call fcn.004274c0
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x30]
add esp, 0x10
xor edx, edx
mov byte [eax + 0xa], 0
cmp byte [ebx], 0x1d
mov dword [ebp - 0x3c], edx
jne 0x42e01a
xor ecx, ecx
cmp cx, word [eax + 8]
jae 0x42e01a
mov ecx, dword [eax + 4]
add ecx, 8
test byte [ecx], 1
jne 0x42e013
movzx ebx, word [eax + 8]
inc edx
add ecx, 0x28
cmp edx, ebx
jl 0x42e000
jmp 0x42e01a
mov dword [ebp - 0x3c], 1
lea edx, [ebp - 0x15c]
push edx
push 0
push 0
push 0
push eax
mov eax, dword [esi + 0x28]
call fcn.0041b620
add esp, 0x14
cmp dword [ebp - 0x2c], 0
mov ebx, eax
mov dword [ebp - 0x14], ebx
je 0x42e049
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x1c]
call fcn.004041a0
test ebx, ebx
jne 0x42c6ba
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x15c]
xor eax, eax
test edx, edx
mov dword [ecx + 0x20], edx
sete al
mov dl, 1
sub dl, al
mov byte [ecx + 2], dl
mov byte [ecx + 3], bl
mov dword [ecx + 0x1c], ebx
mov ecx, dword [ebp - 0x18]
cmp byte [ecx], 0x1f
jne 0x42e09e
test eax, eax
je 0x42d07f
mov ebx, dword [ebp - 0x18]
mov ebx, dword [ebx + 8]
mov edx, dword [ebp - 0x48]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4 - 0x14]
mov ebx, eax
mov dword [ebp - 0x18], eax
add ebx, 0x14
jmp 0x42b920
cmp dword [ebp - 0x3c], 0
jne 0x42e081
test eax, eax
je 0x42e081
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + edx*8]
movzx eax, word [esi + 8]
test al, 4
jne case.0x42b939.33
test al, 8
jne 0x42e0dd
test al, 2
je 0x42e0e7
push 1
mov eax, esi
call fcn.0042b5e0
add esp, 4
jmp 0x42e0e7
mov edi, esi
call fcn.00422c50
mov edi, dword [ebp - 0x20]
test byte [esi + 8], 4
je 0x42e084
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x70]
mov esi, dword [edx + ecx*4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
lea edx, [ebp - 0x104]
push edx
push 0
push ecx
push eax
mov dword [ebp - 0x138], eax
mov eax, dword [esi + 0x28]
push 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x134], ecx
call fcn.0041b620
mov ecx, dword [ebp - 0x134]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x138]
mov dword [esi + 0x40], eax
mov eax, dword [ebp - 0x104]
add esp, 0x14
mov dword [esi + 0x44], ecx
mov dword [esi + 0x1c], 0
mov word [esi + 2], 0
mov dword [esi + 0x20], eax
test eax, eax
je 0x42e17a
cmp dword [ebx + 8], 0
jne 0x42e084
mov eax, 0x14031
call fcn.0047f450
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x42c6ba
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x10]
mov dword [eax], edx
mov ecx, dword [ecx + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + edx*4]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add ebx, 0x14
jmp 0x42b920
mov esi, dword [ebp - 0x20]
xor edi, edi
mov eax, ebx
mov edx, esi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0xa8], edi
call fcn.0042b830
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x70]
mov dword [ebp - 0x28], eax
mov eax, dword [edx + ecx*4]
test byte [eax + 8], 2
mov dword [ebp - 0x30], eax
jne 0x42e25c
mov esi, eax
mov eax, dword [esi + 0x28]
lea edi, [ebp - 0xa8]
call fcn.0041b5d0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
cmp dword [ebp - 0xa8], eax
je 0x42e222
mov dword [ebp - 0x80], 1
xor edi, edi
jmp 0x42e256
mov edi, dword [esi + 0x28]
mov eax, edi
call fcn.0041ad00
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edi
cmp edi, 0x7fffffff
jl 0x42e24d
jg 0x42e247
cmp eax, 0xffffffff
jb 0x42e24d
or dword [esi + 8], 2
jmp 0x42e259
add eax, 1
mov dword [ebp - 0x80], eax
adc edi, 0
mov dword [ebp - 0x7c], edi
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x42e2dd
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0xb8]
test ecx, ecx
je 0x42e28b
mov eax, dword [ecx + 4]
test eax, eax
je 0x42e280
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x42e277
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x42e294
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0x24]
lea esi, [edx + ecx*8]
call fcn.00422cf0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x42e2af
cmp ecx, 0x7fffffff
je 0x42e33f
mov edx, dword [ebp - 0x30]
test byte [edx + 8], 2
jne 0x42e33f
add eax, 1
adc ecx, 0
cmp edi, ecx
jg 0x42e2d5
jl 0x42e2cd
cmp dword [ebp - 0x80], eax
jae 0x42e2d5
mov edi, ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edi
mov eax, dword [ebp - 0x80]
mov dword [esi], eax
mov dword [esi + 4], edi
mov ecx, dword [ebp - 0x30]
test byte [ecx + 8], 2
je 0x42e34e
xor esi, esi
lea edx, [ebp - 0x80]
push edx
push 8
call fcn.004062c0
mov edi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x30]
lea ecx, [ebp - 0xa8]
push ecx
and edi, 0x3fffffff
add eax, 1
adc edi, 0
push 0
push edi
push eax
mov dword [ebp - 0x80], eax
mov eax, dword [edx + 0x28]
push 0
mov dword [ebp - 0x7c], edi
call fcn.0041b620
add esp, 0x1c
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
cmp dword [ebp - 0xa8], eax
jne 0x42e34b
inc esi
cmp esi, 0x64
jl 0x42e2e8
mov dword [ebp - 0x14], 0xd
jmp 0x42c6b7
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x80]
mov byte [eax + 3], 0
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x28]
mov dword [eax + 4], edi
mov edi, dword [ebp - 0x20]
mov dword [eax], ecx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
xor esi, esi
mov dword [ebp - 0x2c], ecx
cmp dl, 0x73
jne 0x42e3a6
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + edx*8]
mov edx, dword [eax + edx*8 + 4]
jmp 0x42e3a9
cdq
mov ecx, eax
cmp byte [ebx + 1], 0xf1
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1ac], edx
mov dword [ebp - 0x1b0], ecx
jne 0x42e3f9
cmp dword [eax + 0xdc], esi
je 0x42e3f9
mov edx, dword [ebp - 0x2c]
movsx edx, byte [edx + 1]
mov esi, dword [eax + 0x10]
add edx, edx
mov edx, dword [esi + edx*8]
mov dword [ebp - 0x44], edx
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x3c], edx
mov dl, byte [ebx + 3]
and dl, 4
movzx esi, dl
mov edx, dword [ebp - 0x1ac]
neg esi
sbb esi, esi
and esi, 5
add esi, 0x12
jmp 0x42e3ff
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x44], esi
test byte [ebx + 3], 1
je 0x42e408
inc dword [edi + 0x2c]
test byte [ebx + 3], 2
je 0x42e420
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], edx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x30]
movzx ecx, word [edx + 8]
test cl, 1
je 0x42e436
xor eax, eax
mov dword [ebp - 0x1a8], eax
jmp 0x42e442
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x1a8], eax
mov eax, dword [edx + 0xc]
mov bl, byte [ebx + 3]
mov dword [ebp - 0x19c], eax
test bl, 0x10
je 0x42e458
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x20]
jmp 0x42e45a
xor eax, eax
test ecx, 0x4000
je 0x42e46c
mov ecx, dword [edx]
mov dword [ebp - 0x198], ecx
jmp 0x42e476
mov dword [ebp - 0x198], 0
movzx edx, bl
mov ebx, dword [ebp - 0x2c]
push eax
shr edx, 3
and edx, 1
push edx
lea eax, [ebp - 0x1b8]
push eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x1b8], 0
call fcn.0041f0d0
add esp, 0xc
mov dword [ebp - 0x14], eax
mov byte [ebx + 3], 0
mov dword [ebx + 0x1c], 0
test eax, eax
jne 0x42c6b7
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0xdc]
test eax, eax
je 0x42d07f
test esi, esi
je 0x42d07f
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1b0]
push edx
mov edx, dword [ebp - 0x3c]
push ecx
mov ecx, dword [edx]
mov edx, dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [ecx + 0xd8]
push esi
push edx
call eax
mov ebx, dword [ebp - 0x18]
add esp, 0x18
add ebx, 0x14
jmp 0x42b920
cmp byte [ebx + 1], 0xf1
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x70]
mov esi, dword [edx + ecx*4]
mov dword [ebp - 0x2c], eax
jne 0x42e55c
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0xdc], 0
je 0x42e55c
movsx ecx, byte [esi + 1]
mov edx, dword [eax + 0x10]
add ecx, ecx
test byte [ebx + 3], 2
mov eax, dword [edx + ecx*8]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], ecx
je 0x42e564
cmp byte [esi + 4], 0
je 0x42e564
mov edi, dword [esi + 0x28]
mov eax, edi
call fcn.0041ad00
mov edx, dword [edi + 0x10]
mov dword [esi + 0x40], edx
mov eax, dword [edi + 0x14]
mov dword [esi + 0x44], eax
jmp 0x42e564
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], eax
mov al, byte [ebx + 3]
mov edi, dword [esi + 0x28]
call fcn.0041f370
xor edx, edx
mov dword [ebp - 0x14], eax
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], edx
cmp eax, edx
jne 0x42c6b7
test byte [ebp - 0x2c], 1
je 0x42d07c
mov eax, dword [ebp - 0x20]
inc dword [eax + 0x2c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0xdc]
cmp ecx, edx
je 0x42d07c
mov edx, dword [ebp - 0x3c]
test byte [edx + 0x2c], 0x20
jne 0x42d07c
mov edi, dword [esi + 0x44]
mov esi, dword [esi + 0x40]
mov edx, dword [edx]
mov eax, dword [eax + 0xd8]
push edi
push esi
push edx
mov edx, dword [ebp - 0x44]
push edx
push 9
push eax
call ecx
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
add esp, 0x18
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [edi + 0x2c]
mov eax, dword [ebp - 0x1c]
add dword [eax + 0x5c], ecx
mov dword [eax + 0x58], ecx
mov dword [edi + 0x2c], 0
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x70]
mov eax, dword [edx + ecx*4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebx + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
lea edx, [ebp - 0x118]
push edx
push ebx
push ecx
mov dword [ebp - 0x118], 0
call fcn.00434420
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6ba
cmp dword [ebp - 0x118], eax
jne 0x42e081
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x70]
mov eax, dword [ecx + edx*4]
call fcn.00434380
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x70]
mov eax, dword [edx + eax*4]
mov ebx, dword [ebp - 0x18]
mov dword [eax + 0x1c], 0
mov edi, ecx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x70]
mov dword [ebp - 0x28], eax
mov eax, dword [edx + ecx*4]
mov esi, dword [eax + 0x28]
mov eax, esi
mov dword [ebp - 0x44], esi
call fcn.0041ad00
mov eax, dword [esi + 0x1c]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], eax
cmp eax, dword [esi + 0x60]
ja 0x42c43f
mov ecx, eax
cmp ecx, 0x20
ja 0x42e6d9
mov ecx, 0x20
mov ebx, dword [ebp - 0x28]
cmp dword [ebx + 0x18], ecx
jge 0x42e73e
xor eax, eax
mov edx, ebx
call fcn.00422600
test eax, eax
jne 0x42d0b9
mov dx, word [ebx + 8]
mov eax, dword [ebp - 0x3c]
mov ecx, 0x3e00
and dx, cx
or dx, 0x10
mov word [ebx + 8], dx
mov edx, dword [ebp - 0x44]
push 0
mov dword [ebx + 0xc], eax
mov ebx, dword [ebx + 0x10]
push ebx
push eax
push 0
push edx
call fcn.0041aee0
add esp, 0x14
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6bd
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x18]
mov byte [eax + 0xa], 1
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 0x14]
and word [ebx + 8], 0xd
mov dword [ebx + 0x10], ecx
jmp 0x42e6f2
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x70]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 2], 0
mov dword [ebp - 0x28], eax
je 0x42e777
mov ecx, 1
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x42b920
cmp byte [esi + 3], 0
je 0x42e7a2
mov edx, dword [esi + 0x40]
mov dword [ebp - 0xe8], edx
mov ecx, dword [esi + 0x44]
mov dword [ebp - 0xe4], ecx
mov dword [eax], edx
mov ecx, dword [ebp - 0xe4]
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x42b920
cmp byte [esi], 2
jne 0x42e7f1
mov esi, dword [esi + 0x28]
mov ebx, dword [esi]
mov eax, dword [ebx]
mov eax, dword [eax + 0x30]
lea edx, [ebp - 0xe8]
push edx
push esi
call eax
mov esi, eax
push ebx
push edi
mov dword [ebp - 0x14], esi
call fcn.00428780
add esp, 0x10
test esi, esi
jne 0x42c6ba
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0x18]
mov dword [eax], edx
mov ecx, dword [ebp - 0xe4]
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [esi + 0x28]
cmp byte [ecx + 0x42], 1
je 0x42e82c
mov edi, esi
call fcn.00427010
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
cmp byte [esi + 2], 0
je 0x42e835
mov edi, dword [ebp - 0x20]
mov edx, 1
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x42b920
mov dword [ebp - 0x14], 0
jmp 0x42e812
mov esi, dword [esi + 0x28]
mov eax, esi
call fcn.0041ad00
mov eax, dword [esi + 0x10]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0xe8], eax
mov ecx, dword [esi + 0x14]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 0xe4], ecx
mov dword [eax], edx
mov ecx, dword [ebp - 0xe4]
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + edx*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x1c], 0
jne case.0x42b939.112
mov esi, dword [eax + 0x28]
call fcn.00417270
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x70]
mov esi, dword [edx + ecx*4]
mov ecx, dword [ebx + 0xc]
mov eax, dword [esi + 0x28]
mov dword [esi + 0x20], ecx
cmp dword [ebx + 0xc], 0
mov dword [ebp - 0xfc], 0
je 0x42e8c9
cmp byte [eax + 0x42], 1
je case.0x42b939.112
lea edi, [ebp - 0xfc]
call fcn.0041b5d0
mov ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x14], eax
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x42c6b7
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
mov ebx, edx
cmp dword [edx + 8], eax
jle case.0x42b939.112
test ecx, ecx
jne 0x42e084
add ebx, 0x14
jmp 0x42b920
inc dword [edi + 0xa4]
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov ebx, dword [ecx + eax*4]
cmp byte [ebx], 1
mov dword [ebp - 0xac], 1
jne 0x42e941
lea edi, [ebp - 0xac]
mov ecx, ebx
call fcn.004342c0
jmp 0x42e973
mov esi, dword [ebx + 0x28]
call fcn.0041b2a0
xor edi, edi
cmp eax, edi
jne 0x42e96c
cmp byte [esi + 0x42], 0
jne 0x42e961
mov dword [ebp - 0xac], 1
jmp 0x42e96c
mov dword [ebp - 0xac], edi
call fcn.0041b480
mov byte [ebx + 3], 0
mov dword [ebx + 0x1c], edi
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov eax, dword [ebp - 0xac]
mov edi, dword [ebp - 0x20]
mov byte [ebx + 2], al
mov ebx, dword [ebp - 0x18]
test eax, eax
jne 0x42e084
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebp - 0x20]
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 0x70]
mov esi, dword [ecx + edx*4]
mov edi, dword [ebp - 0x1c]
lea ebx, [ebp - 0xbc]
mov eax, esi
mov dword [ebp - 0xbc], 0
call fcn.00434310
jmp 0x42e9fa
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
cmp dword [eax + edx*4], 0
je case.0x42b939.112
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x70]
mov esi, dword [edx + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xbc], eax
mov edx, dword [esi + 0x28]
mov eax, dword [ebx + 0x10]
lea ecx, [ebp - 0xbc]
push ecx
push edx
call eax
add esp, 8
mov dword [ebp - 0x14], eax
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x42c6b7
mov edi, dword [ebp - 0x20]
cmp dword [ebp - 0xbc], eax
jne 0x42ea36
mov ecx, dword [ebp - 0x18]
mov byte [esi + 2], al
movzx edx, byte [ecx + 3]
mov eax, edi
inc dword [eax + edx*4 + 0x9c]
lea eax, [eax + edx*4 + 0x9c]
jmp 0x42fe5e
mov byte [esi + 2], 1
jmp 0x42fe71
test byte [ebx + 3], 1
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x70]
mov eax, dword [edx + ecx*4]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
je 0x42ea60
inc dword [edi + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x42ea7e
call fcn.004227b0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov ebx, dword [ebp - 0x18]
cmp byte [ebx], 0x7c
jne 0x42ea91
mov eax, dword [ebp - 0x2c]
push esi
call fcn.00433330
add esp, 4
jmp 0x42eafd
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov esi, dword [ebp - 0x2c]
cdq
mov dword [ebp - 0x298], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x294], edx
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2a0], ecx
lea ecx, [eax + edx*8]
mov dx, word [ebx + 0x10]
mov bl, byte [ebx + 3]
mov dword [ebp - 0x28c], ecx
mov word [ebp - 0x288], dx
test bl, 0x10
je 0x42ead7
mov eax, dword [esi + 0x20]
jmp 0x42ead9
xor eax, eax
push eax
movzx eax, bl
shr eax, 3
and eax, 1
push eax
mov eax, dword [esi + 0x28]
lea ecx, [ebp - 0x2a0]
push ecx
call fcn.0041f0d0
add esp, 0xc
mov dword [esi + 0x1c], 0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov esi, dword [eax + edx*4]
mov ecx, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dx, word [ebx + 0xc]
mov ebx, dword [ebx + 8]
mov dword [ebp - 0x240], ecx
mov ecx, dword [ebp - 0x24]
lea eax, [ebx + ebx*4]
mov word [ebp - 0x238], dx
lea edx, [ecx + eax*8]
lea eax, [ebp - 0x150]
push eax
push 0
push 0
lea ecx, [ebp - 0x240]
push 0
push ecx
mov eax, edi
mov byte [ebp - 0x236], 0
mov dword [ebp - 0x23c], edx
call fcn.0041b620
add esp, 0x14
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
cmp dword [ebp - 0x150], eax
jne 0x42eb8f
mov al, 4
call fcn.0041f370
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
xor eax, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov edi, dword [eax + edx*4]
mov ecx, dword [edi + 0x28]
cmp byte [ecx + 0x42], 1
je 0x42ec4a
call fcn.00427010
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6b7
mov ebx, dword [ebp - 0x18]
cmp byte [edi + 2], 0
jne 0x42ec83
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0xf0]
push edx
xor esi, esi
push eax
mov eax, dword [edi + 0x28]
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0xec], esi
call fcn.004284c0
add esp, 8
mov dword [ebp - 0x14], eax
cmp eax, esi
jne 0x42c6b7
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0x7f
mov edx, dword [ebp - 0x20]
jne 0x42ec56
mov edx, dword [edx + 0x70]
mov ecx, dword [eax + 0xc]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x18]
mov dword [ecx + 0x40], edx
mov edx, dword [ebp - 0xec]
mov dword [ecx + 0x44], edx
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x24], edi
mov edi, dword [ebp - 0x20]
mov dword [ecx + 0x18], eax
add ebx, 0x14
jmp 0x42b920
mov dword [ebp - 0x14], 0
jmp 0x42ebce
call fcn.0042b830
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xec]
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
mov dword [eax], ecx
mov ecx, 4
mov dword [eax + 4], edx
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea eax, [eax + edx*8]
call fcn.00422f00
mov edi, dword [ebp - 0x20]
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x250], ecx
mov cx, word [ebx + 0x10]
mov ebx, dword [ebx + 0xc]
cmp dl, 0x3c
sbb dl, dl
mov word [ebp - 0x248], cx
mov byte [ebp - 0x246], dl
mov edx, dword [ebp - 0x24]
lea ecx, [ebx + ebx*4]
lea ecx, [edx + ecx*8]
lea edx, [ebp - 0x250]
mov dword [ebp - 0x24c], ecx
mov ecx, dword [ebp - 0x1c]
push edx
push ecx
lea ebx, [ebp - 0x90]
mov dword [ebp - 0x90], 0
call fcn.00428600
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x90]
add esp, 8
test byte [edx], 1
mov dword [ebp - 0x14], eax
jne 0x42ed11
neg ecx
jmp 0x42ed12
inc ecx
mov dword [ebp - 0x90], ecx
test eax, eax
jne 0x42c6ba
mov ebx, dword [ebp - 0x18]
test ecx, ecx
jg 0x42e084
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov esi, dword [ebp - 0x1c]
mov ecx, 1
mov word [eax + 8], cx
mov edx, dword [esi + 0xac]
inc edx
mov dword [ebp - 0x28], eax
cmp dword [esi + 0xa0], edx
jg 0x43055b
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x3c], eax
push ecx
mov ecx, dword [esi + 0x10]
add eax, eax
mov eax, dword [ecx + eax*8 + 4]
push edx
mov dword [ebp - 0xf8], 0
call fcn.0041feb0
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0xf8]
mov dword [ebp - 0x14], eax
mov edx, 4
mov eax, ebx
mov word [ecx + 8], dx
cdq
add esp, 8
cmp dword [ebp - 0x14], 0
mov dword [ecx], eax
mov dword [ecx + 4], edx
jne 0x42c6bd
test ebx, ebx
je 0x42d07f
mov eax, dword [ebp - 0x18]
mov edi, dword [eax + 4]
mov ecx, dword [ebp - 0x1c]
mov esi, ebx
mov ebx, dword [ebp - 0x3c]
mov eax, ebx
call fcn.00446490
mov edi, dword [ebp - 0x20]
inc bl
mov byte [ebp - 0x61], bl
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x108]
and ecx, edx
mov edx, dword [esi + 0x10]
push ecx
mov ecx, dword [ebx + 8]
add ecx, ecx
mov dword [ebp - 0x108], 0
push eax
mov eax, dword [edx + ecx*8 + 4]
call fcn.0041fb90
add esp, 8
cmp dword [ebx + 0xc], 0
mov ecx, eax
mov dword [ebp - 0x14], ecx
je 0x42ee40
mov eax, dword [ebp - 0x108]
add dword [edi + 0x2c], eax
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jle 0x42ee40
lea edx, [ebx + ebx*4]
mov ebx, dword [ebp - 0x24]
lea ebx, [ebx + edx*8]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
test ecx, ecx
jne 0x42c6bd
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov eax, dword [ecx + eax*4]
cmp byte [eax], 1
jne 0x42ee79
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 0x1c]
push edx
push eax
call fcn.004325d0
add esp, 8
add ebx, 0x14
jmp 0x42b920
mov eax, dword [eax + 0x28]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax]
push 0
push ecx
call fcn.0041fb90
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6ba
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [esi + 0x10]
xor ecx, ecx
cmp byte [ebx], 0x86
mov eax, dword [eax + 4]
setne cl
lea edx, [ebp - 0x114]
mov dword [ebp - 0x114], 0
inc ecx
push ecx
push edx
call fcn.0041f990
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6bd
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x18]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebx + 0x10]
push edx
lea ecx, [edi + 0x6c]
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x184], ecx
mov ecx, dword [esi + 0x10]
add eax, eax
mov dword [ebp - 0x188], esi
mov edx, dword [ecx + eax*8]
push 0x4b5780
push edx
push 0x4b5790
push esi
call fcn.00406000
add esp, 0x14
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4301f5
mov ecx, dword [ebp - 0x3c]
push 0
lea eax, [ebp - 0x188]
push eax
push fcn.00459b50
push ecx
push esi
mov byte [esi + 0x99], 1
mov dword [ebp - 0x17c], 0
call fcn.00455560
add esp, 0x14
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42ef87
mov edx, dword [ebp - 0x17c]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x3c]
mov ecx, esi
call fcn.004041a0
cmp dword [ebp - 0x14], 0
mov byte [esi + 0x99], 0
je case.0x42b939.112
mov eax, esi
call fcn.004435a0
cmp dword [ebp - 0x14], 7
je 0x42d0bc
jmp 0x42c6bd
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x1c]
call fcn.00441500
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6ba
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 0x10]
mov edi, dword [ebp - 0x1c]
push eax
mov eax, dword [ebx + 4]
call fcn.00443a90
mov edi, dword [ebp - 0x20]
add esp, 4
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x1c]
push ecx
call fcn.00443350
mov ebx, dword [ebp - 0x18]
add esp, 4
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x1c]
push edx
call fcn.00467520
mov edi, dword [ebp - 0x20]
add esp, 4
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ebp - 0x38], edx
mov edx, dword [esi]
lea eax, [ebp - 0xf4]
push eax
mov eax, dword [ebx + 0x10]
push edx
push ecx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10]
push eax
movzx eax, byte [ebx + 3]
add eax, eax
mov ecx, dword [edx + eax*8 + 4]
call fcn.00420be0
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xf4]
cdq
add esp, 0x10
sub dword [esi], eax
mov eax, dword [ebp - 0x38]
sbb dword [esi + 4], edx
call fcn.00422f00
cmp dword [ebp - 0xf4], 0
je 0x42f0b9
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x42d0b9
mov edx, dword [ebp - 0x38]
push 1
push eax
mov eax, fcn.004040f0
or ecx, 0xffffffff
call fcn.004231e0
mov ebx, dword [ebp - 0x18]
add esp, 8
movzx ecx, byte [ebp - 0x4d]
mov eax, dword [ebp - 0x38]
call fcn.004225e0
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [ebp - 0x34], eax
jne 0x42f0fe
call fcn.00422fa0
test byte [esi + 8], 0x20
je 0x42d0b9
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov esi, dword [esi]
push ecx
push edx
call fcn.0040e460
add esp, 8
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea eax, [ecx + eax*8]
mov dword [ebp - 0x38], eax
je 0x42f16d
mov edx, eax
mov eax, dword [edx]
lea esi, [ebp - 0x190]
call fcn.0040e7e0
test eax, eax
je 0x42f16a
mov eax, dword [ebp - 0x18c]
mov ebx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x190]
push eax
mov eax, dword [ebp - 0x24]
lea edx, [ebx + ebx*4]
push ecx
lea eax, [eax + edx*8]
call fcn.00422f60
add esp, 8
jmp 0x42fe71
mov eax, dword [ebp - 0x38]
call fcn.00422f00
jmp case.0x42b939.13
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 8], 0x20
mov eax, dword [ebx + 0xc]
lea esi, [ecx + edx*8]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], edx
jne 0x42f1ae
call fcn.00422fa0
test byte [esi + 8], 0x20
je 0x42d0b9
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x42f1d7
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
push edx
push ecx
push eax
mov eax, dword [esi]
call fcn.0040e830
add esp, 0xc
test eax, eax
jne 0x42e084
mov eax, dword [ebp - 0x3c]
test eax, eax
js case.0x42b939.112
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov esi, dword [esi]
push edx
push eax
call fcn.0040e460
add esp, 8
add ebx, 0x14
jmp 0x42b920
cmp byte [ebx + 3], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + edx*8]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], esi
je 0x42f231
mov eax, dword [edi + 0xb8]
mov edx, dword [ecx + 0x10]
test eax, eax
je 0x42f231
cmp dword [eax + 0x18], edx
je case.0x42b939.112
mov eax, dword [eax + 4]
test eax, eax
jne 0x42f221
mov edx, dword [edi + 0xc0]
mov eax, dword [ebp - 0x1c]
cmp edx, dword [eax + 0x88]
jge 0x43056e
test byte [esi + 8], 0x40
jne 0x42f317
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 8]
add ebx, eax
test eax, eax
jne 0x42f25d
inc ebx
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0xc]
lea ecx, [ebx + ebx*4 + 0xa]
lea eax, [eax + ecx*2]
add eax, eax
add eax, eax
cdq
push edx
push eax
mov eax, dword [ebp - 0x1c]
call fcn.004043e0
mov esi, eax
add esp, 8
test esi, esi
je 0x42d0b9
mov eax, dword [ebp - 0x2c]
call fcn.00422b10
mov eax, dword [ebp - 0x2c]
mov dword [eax], esi
mov ecx, 0x40
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x30]
mov dword [esi], edi
mov dword [esi + 0x3c], ebx
mov edx, dword [ecx + 0xc]
mov dword [esi + 0x40], edx
mov edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x48]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov edx, dword [edi + 0x5c]
mov dword [esi + 0x10], edx
mov eax, dword [edi + 0x18]
mov dword [esi + 0x38], eax
mov edx, dword [edi + 0x70]
mov dword [esi + 0x14], edx
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x2c], eax
mov edx, dword [edi + 0x58]
mov dword [esi + 8], edx
mov eax, dword [edi + 0x88]
mov dword [esi + 0x34], eax
mov ecx, dword [ecx + 0x10]
lea edx, [ebx + ebx*4 + 0xa]
mov dword [esi + 0x18], ecx
lea ecx, [esi + edx*8]
lea eax, [esi + 0x50]
cmp eax, ecx
je 0x42f31c
mov edx, dword [ebp - 0x1c]
mov ebx, 0x80
mov word [eax + 8], bx
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x42f302
jmp 0x42f31c
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax]
inc dword [edi + 0xc0]
mov ecx, dword [edi + 0xb8]
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x84]
mov dword [esi + 0x24], eax
mov dword [esi + 4], ecx
mov dword [esi + 0x20], edx
mov ecx, dword [edi + 0x2c]
mov dword [esi + 0x44], ecx
mov edx, dword [edi]
mov eax, dword [edx + 0x58]
mov dword [esi + 0x48], eax
mov ecx, dword [edi + 0xcc]
mov dword [esi + 0x28], ecx
xor eax, eax
mov dword [edi + 0xcc], eax
mov dword [edi + 0x2c], eax
lea eax, [esi + 0x50]
mov dword [edi + 0x5c], eax
mov dword [edi + 0xb8], esi
mov edx, dword [esi + 0x3c]
mov dword [edi + 0x18], edx
movzx ecx, word [esi + 0x40]
mov dword [edi + 0x1c], ecx
mov ecx, edx
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
lea eax, [eax + edx*8]
mov dword [edi + 0x70], eax
mov eax, dword [ecx]
mov dword [edi + 0x58], eax
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x48], eax
add eax, 0xffffffec
mov ebx, eax
mov dword [edi + 0x88], ecx
mov dword [ebp - 0x18], eax
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov edx, dword [edi + 0xb8]
mov ecx, dword [edx + 0x30]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
mov ecx, dword [esi + ecx*4 + 4]
add ecx, dword [ebx + 4]
push 0x1000
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.004230b0
add esp, 0xc
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebp - 0x1c]
test dword [ecx + 0x18], 0x2000000
mov eax, dword [ebx + 8]
cdq
je 0x42f40d
add dword [ecx + 0x1c0], eax
adc dword [ecx + 0x1c4], edx
add ebx, 0x14
jmp 0x42b920
cmp dword [ebx + 4], 0
je 0x42f427
add dword [ecx + 0x1b8], eax
adc dword [ecx + 0x1bc], edx
add ebx, 0x14
jmp 0x42b920
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
add ebx, 0x14
jmp 0x42b920
cmp dword [ebx + 4], 0
je 0x42f452
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x1b8]
or edx, dword [eax + 0x1bc]
jne case.0x42b939.112
jmp 0x42f461
mov edx, dword [edi + 0x40]
or edx, dword [edi + 0x44]
jne case.0x42b939.112
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x1c0]
or ecx, dword [eax + 0x1c4]
je 0x42e084
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [edi + 0xb8]
test ecx, ecx
je 0x42f4a4
mov eax, dword [ecx + 4]
test eax, eax
je 0x42f499
lea esp, [esp]
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x42f490
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
jmp 0x42f4ad
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea ecx, [eax + edx*8]
mov esi, ecx
mov dword [ebp - 0x38], ecx
call fcn.00422cf0
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + edx*8]
call fcn.00422cf0
mov ecx, dword [ebp - 0x38]
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov edx, dword [ecx + 4]
cmp edx, esi
jg case.0x42b939.112
jl 0x42f4ea
mov edx, dword [ecx]
cmp edx, eax
jae case.0x42b939.112
mov ecx, dword [ebp - 0x38]
mov dword [ecx], eax
mov dword [ecx + 4], esi
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x254], eax
test eax, eax
jl case.0x42b939.112
jg 0x42f524
test esi, esi
je case.0x42b939.112
mov eax, dword [ebx + 0xc]
cdq
sub esi, eax
mov eax, dword [ebp - 0x254]
sbb eax, edx
mov dword [ecx], esi
mov dword [ecx + 4], eax
jmp 0x42e084
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + edx*8]
lea ecx, [ecx + eax*8]
mov eax, ebx
mov edx, edi
mov dword [ebp - 0x34], ecx
call fcn.0042b830
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], esi
test esi, esi
jl 0x42f5c2
jg 0x42f57b
test ecx, ecx
je 0x42f5c2
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
test eax, eax
jl 0x42f58d
jg 0x42f591
test ecx, ecx
jne 0x42f591
xor ecx, ecx
xor eax, eax
push eax
push ecx
lea edx, [ebp - 0x128]
push edx
call fcn.00407f10
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 0x28]
jne 0x42f5c2
mov ecx, dword [ebp - 0x128]
mov edx, dword [ebp - 0x124]
mov dword [eax], ecx
mov dword [eax + 4], edx
add ebx, 0x14
jmp 0x42b920
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov esi, eax
or esi, ecx
je case.0x42b939.112
test ecx, ecx
jl 0x42e084
jg 0x42f604
test eax, eax
je 0x42e084
sub eax, 1
sbb ecx, 0
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x42e084
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + edx*8 + 4]
lea eax, [eax + edx*8]
mov edx, dword [eax]
cmp ecx, 0x80000000
jl 0x42f63f
jg 0x42f634
test edx, edx
je 0x42f63f
sub edx, 1
sbb ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [eax]
or ecx, dword [eax + 4]
je 0x42e084
add ebx, 0x14
jmp 0x42b920
movzx eax, byte [ebx + 3]
mov esi, dword [ebp - 0x1c]
lea edx, [eax*4 + 0x1c]
mov dword [ebp - 0x3c], eax
push 0
push edx
mov eax, esi
call fcn.00404490
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x42d0b9
mov ebx, dword [ebp - 0x18]
mov dword [ecx + 8], 0
mov eax, dword [ebx + 0x10]
mov dword [ecx + 4], eax
mov edx, ebx
sub edx, dword [ebp - 0x48]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [ebp - 0x3c]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edi
mov byte [ecx + 0x1a], dl
mov dword [ebx + 0x10], ecx
mov word [ebx], 0xf093
jmp 0x42f6b9
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x44], eax
cmp dword [edx + 8], eax
je 0x42f703
movzx ecx, byte [edx + 0x1a]
dec ecx
mov dword [edx + 8], eax
js 0x42f703
lea edx, [edx + ecx*4 + 0x1c]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x24]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0x3c]
mov dword [eax], edx
sub eax, 4
dec ecx
mov dword [ebp - 0x3c], eax
jns 0x42f6e4
mov eax, dword [ebp - 0x44]
inc dword [eax + 0xc]
mov eax, 1
mov word [ebp - 0x2c0], ax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2a8], esi
mov dword [ebp - 0x2b0], 0
mov edx, dword [eax + 4]
lea ecx, [ebp - 0x2c8]
mov dword [eax], ecx
lea ecx, [eax + 0x1c]
push ecx
movzx ecx, byte [eax + 0x1a]
push ecx
mov word [eax + 0x18], 0
mov edx, dword [edx + 0xc]
push eax
call edx
mov eax, dword [ebp - 0x30]
add esp, 0xc
cmp byte [eax + 0x19], 0
je 0x42f79c
mov ecx, eax
cmp dword [ecx + 0x14], 0
je 0x42f784
lea edx, [ebp - 0x2c8]
push edx
call fcn.00428d10
add esp, 4
push eax
push 0x4b4e18
mov esi, edi
call fcn.00423b10
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x14]
mov esi, dword [ebp - 0x1c]
add esp, 8
mov dword [ebp - 0x14], ecx
lea eax, [ebp - 0x2c8]
call fcn.00422b10
cmp dword [ebp - 0x14], 0
jne 0x42c6bd
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x30]
cmp byte [edx + 0x18], 0
je case.0x42b939.112
mov eax, dword [ebx - 0x10]
test eax, eax
je case.0x42b939.112
push 0
push 1
jmp 0x42c29e
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + edx*8]
mov eax, esi
call fcn.00422940
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x430589
movzx ecx, byte [ebp - 0x4d]
mov eax, esi
call fcn.004225e0
mov ecx, esi
call fcn.00423050
test eax, eax
jne 0x42c43f
add ebx, 0x14
jmp 0x42b920
mov esi, dword [ebp - 0x1c]
or eax, 0xffffffff
lea ecx, [ebp - 8]
push ecx
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xc]
push edx
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 8]
push eax
push ecx
push esi
mov dword [ebp - 0x10], 0
call fcn.0047df50
add esp, 0x14
mov dword [ebp - 0x14], eax
test eax, eax
je 0x42f84d
cmp eax, 5
jne 0x42c6bd
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea ecx, [eax + edx*8]
xor esi, esi
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp + esi*4 - 0x10]
cdq
push edx
push eax
mov eax, dword [ebp - 0x2c]
call fcn.00422f60
add dword [ebp - 0x2c], 0x28
inc esi
add esp, 8
cmp esi, 3
jl 0x42f85e
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [esi + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0xc]
mov ebx, dword [edx]
mov dword [ebp - 0x3c], ecx
movzx ecx, byte [ebx + 5]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ecx
cmp eax, 0xffffffff
jne 0x42f8bc
mov edx, ecx
mov dword [ebp - 0x34], edx
cmp byte [ebx + 0x11], 3
jae 0x42f8d8
mov eax, dword [ebx + 0x44]
cmp dword [eax], 0
je 0x42f8de
cmp dword [ebx + 0x54], 0
jl 0x42f8de
jg 0x42f8d8
cmp dword [ebx + 0x50], 0
jbe 0x42f8de
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
cmp byte [ebx + 0x10], 0
mov eax, 0x4b4d94
jne 0x42f8ef
mov eax, dword [ebx + 0xb0]
cmp dword [ebp - 0x34], 5
jne 0x42f914
call fcn.00406d50
test eax, eax
je 0x42f909
mov eax, ebx
call fcn.00413c80
test eax, eax
jne 0x42f914
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
jmp 0x42f992
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
je 0x42f992
cmp eax, 5
je 0x42f928
cmp ecx, 5
jne 0x42f992
cmp byte [esi + 0x43], 0
je 0x4305a7
cmp dword [esi + 0xa0], 1
jg 0x4305a7
cmp eax, 5
jne 0x42f962
push esi
mov eax, ebx
call fcn.00413df0
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42f998
mov eax, dword [ebp - 0x34]
mov ecx, ebx
call fcn.00413b20
jmp 0x42f979
cmp eax, 4
jne 0x42f973
mov eax, 2
mov ecx, ebx
call fcn.00413b20
cmp dword [ebp - 0x14], 0
jne 0x42f998
xor eax, eax
cmp dword [ebp - 0x34], 5
sete al
inc eax
push eax
mov eax, dword [ebp - 0x3c]
call fcn.00421280
add esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x42f99e
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov ecx, ebx
call fcn.00413b20
mov ebx, dword [ebp - 0x28]
mov edx, 0xa02
mov word [ebx + 8], dx
cmp eax, 6
jne 0x42f9bd
xor eax, eax
jmp 0x42f9c4
mov eax, dword [eax*4 + 0x4b23cc]
mov dword [ebx + 0x10], eax
call fcn.00406d50
movzx ecx, byte [ebp - 0x4d]
mov dword [ebx + 0xc], eax
mov eax, ebx
mov byte [ebx + 0xa], 1
call fcn.004225e0
cmp dword [ebp - 0x14], 0
jne 0x42c6bd
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov esi, dword [ebp - 0x1c]
lea eax, [edi + 0x6c]
push eax
mov eax, dword [ebx + 4]
call fcn.0046aa20
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6bd
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov edx, dword [esi + 0x10]
shl ecx, 4
mov eax, dword [ecx + edx + 4]
push eax
call fcn.0041a1f0
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
je case.0x42b939.112
cmp eax, 0x65
jne 0x42c6bd
mov dword [ebp - 0x14], 0
jmp 0x42e081
cmp dword [ebx + 4], 0
jne 0x42fa6a
mov eax, dword [ebp - 0x1c]
call fcn.004286f0
add ebx, 0x14
jmp 0x42b920
or dword [edi + 0x90], 1
add ebx, 0x14
jmp 0x42b920
mov cl, byte [ebx + 0xc]
mov esi, dword [ebp - 0x1c]
test cl, cl
jne 0x42fa90
test dword [esi + 0x18], 0x4000
jne case.0x42b939.112
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
push edx
mov edx, dword [esi + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
call fcn.004211a0
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
je case.0x42b939.112
cmp al, 6
jne 0x42c6bd
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x10]
push ecx
push 0x4b583c
mov esi, edi
call fcn.00423b10
add esp, 8
jmp 0x42c6ba
mov edi, dword [ebx + 0x10]
mov esi, dword [ebp - 0x1c]
call fcn.0046c270
mov esi, eax
mov dword [ebp - 0x14], esi
test edi, edi
je 0x42fafa
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x20]
push eax
push ecx
call fcn.00428780
add esp, 8
test esi, esi
jne 0x42c6b7
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
add ebx, 0x14
jmp 0x42b920
mov esi, dword [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edi, [eax + edx*8]
lea eax, [ebp - 0x1e8]
mov dword [ebp - 0x1c8], esi
call fcn.00423120
lea ecx, [ebp - 0x1e8]
push ecx
mov dword [ebp - 0x14], eax
call fcn.00428d10
add esp, 4
test eax, eax
je 0x42fb9c
mov edx, dword [ebp - 0x20]
add edx, 0x6c
push edx
push eax
mov eax, dword [ebx + 4]
mov ecx, esi
call fcn.0046bd20
add esp, 8
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x1e8]
call fcn.00422b10
cmp dword [ebp - 0x14], 0
jne 0x42c6b7
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
add ebx, 0x14
jmp 0x42b920
mov esi, dword [ebp - 0x1c]
inc dword [esi + 0xac]
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [ebx + 4]
mov ecx, esi
call fcn.0046c040
dec dword [esi + 0xac]
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6bd
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xc0], 0
mov esi, dword [ecx + 8]
test esi, esi
je 0x4305e9
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4305e9
mov eax, dword [eax + 0x18]
lea edx, [ebp - 0xc0]
push edx
push esi
call eax
mov ebx, eax
push esi
push edi
mov dword [ebp - 0x14], ebx
call fcn.00428780
add esp, 0x10
test ebx, ebx
jne 0x42c6ba
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
push 2
push 0xffffffffffffffff
mov dword [ecx], esi
push ebx
mov ebx, dword [edx + 4]
call fcn.0042b4f0
add esp, 0xc
test eax, eax
je 0x4305d2
mov ecx, dword [ebp - 0xc0]
mov ebx, dword [ebp - 0x18]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
add ebx, 0x14
jmp 0x42b920
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edx, [eax + edx*8]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov dword [ebp - 0x28], eax
mov eax, dword [esi]
mov ecx, dword [eax]
mov dword [ebp - 0x34], eax
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 0x60]
mov dword [ebp - 0x44], ecx
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x2c], esi
test ecx, ecx
jle 0x42fcce
mov esi, dword [ebp - 0x3c]
add edx, 0x50
lea ecx, [ecx]
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x42fcc0
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebx + 0x10]
push edx
mov edx, dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x30]
push eax
mov eax, dword [edx + 0x20]
push ecx
push esi
call eax
mov ecx, dword [ebp - 0x34]
add esp, 0x14
push ecx
mov ebx, eax
push edi
mov dword [ebp - 0x14], ebx
call fcn.00428780
add esp, 8
test ebx, ebx
jne 0x42c6ba
mov edx, dword [ebp - 0x44]
mov eax, dword [edx + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x28]
add esp, 4
mov byte [ecx + 2], bl
test eax, eax
jne 0x42e081
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 2], 0
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + edx*8]
je 0x42fd50
mov eax, esi
call fcn.00422f00
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ecx + 0x28]
mov eax, dword [edx]
mov dword [ebp - 0x44], eax
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x230], esi
mov dx, word [esi + 8]
mov eax, 0x3e00
and dx, ax
or dx, 1
mov word [esi + 8], dx
mov edx, dword [ebx + 8]
mov ecx, dword [ecx + 0x28]
push edx
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 0x230]
push eax
mov eax, dword [edx + 0x2c]
push ecx
call eax
mov ecx, dword [ebp - 0x44]
add esp, 0xc
push ecx
push edi
mov dword [ebp - 0x14], eax
call fcn.00428780
mov eax, dword [ebp - 0x21c]
add esp, 8
test eax, eax
je 0x42fde0
mov dword [ebp - 0x14], eax
movzx ecx, byte [ebp - 0x4d]
mov eax, esi
call fcn.004225e0
mov ecx, esi
call fcn.00423050
test eax, eax
jne 0x42c43f
cmp dword [ebp - 0x14], eax
jne 0x42c6ba
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov esi, dword [eax + edx*4]
cmp byte [esi + 2], 0
jne case.0x42b939.112
mov eax, dword [esi + 0x28]
mov ebx, dword [eax]
mov ecx, dword [ebx]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ecx + 0x24]
push eax
call ecx
add esp, 4
push ebx
push edi
mov dword [ebp - 0x14], eax
call fcn.00428780
add esp, 8
cmp dword [ebp - 0x14], 0
jne 0x42c6ba
mov edx, dword [esi + 0x28]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
test eax, eax
jne 0x42fe71
mov ebx, dword [ebp - 0x18]
mov ebx, dword [ebx + 8]
mov eax, dword [ebp - 0x48]
lea edx, [ebx + ebx*4]
lea ecx, [eax + edx*4 - 0x14]
mov dword [ebp - 0x18], ecx
mov esi, dword [ebp - 0x1c]
mov edx, dword [esi + 0xf8]
test edx, edx
jne 0x4305f5
mov ebx, dword [esi + 0x130]
test ebx, ebx
je 0x42d07f
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0xcc]
jb 0x42d07f
mov ecx, dword [esi + 0x138]
div ecx
mov eax, dword [esi + 0x134]
push eax
sub ecx, edx
add ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xcc], ecx
call ebx
add esp, 4
test eax, eax
jne 0x4302e5
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov eax, dword [ebp - 0x24]
mov esi, dword [ecx + 8]
lea edx, [ebx + ebx*4]
lea ebx, [eax + edx*8]
mov ecx, 1
mov eax, ebx
call fcn.004225e0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6ba
mov edx, dword [ebx + 0x10]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
push edx
push esi
call eax
mov ebx, eax
push esi
push edi
mov dword [ebp - 0x14], ebx
call fcn.00428780
and dword [edi + 0x90], 0xfffffffe
add esp, 0x10
test ebx, ebx
jne 0x42c6ba
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x44], eax
test eax, eax
je 0x4305e9
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4305e9
cmp dword [eax + 0x34], 0
mov edx, dword [ebx + 8]
mov dword [ebp - 0x2c], edx
je case.0x42b939.112
mov esi, dword [ebp - 0x1c]
mov al, byte [esi + 0x4a]
mov ecx, dword [edi + 0x60]
mov byte [ebp - 0x49], al
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x42ff95
mov edx, dword [ebp - 0x3c]
mov dword [edx + eax*4], ecx
mov edx, dword [ebp - 0x2c]
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x42ff84
mov al, byte [ebx + 3]
mov byte [esi + 0x4a], al
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x178]
push ecx
mov ecx, dword [ebp - 0x44]
push eax
push edx
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0x34]
push ecx
call eax
mov edx, dword [ebp - 0x44]
mov cl, byte [ebp - 0x49]
push edx
push edi
mov dword [ebp - 0x14], eax
mov byte [esi + 0x4a], cl
call fcn.00428780
add esp, 0x18
cmp dword [ebp - 0x14], 0
jne 0x42fff3
cmp dword [ebx + 4], 0
je 0x42fff3
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov ecx, dword [ebp - 0x14]
cmp cl, 0x13
jne 0x430036
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x430036
mov al, byte [ebx + 3]
cmp al, 4
jne 0x43001a
mov dword [ebp - 0x14], 0
add ebx, 0x14
jmp 0x42b920
cmp al, 5
jne 0x43002b
mov eax, 2
mov byte [edi + 0x8e], al
jmp 0x430039
movzx eax, al
mov byte [edi + 0x8e], al
jmp 0x430039
inc dword [edi + 0x2c]
test ecx, ecx
jne 0x42c6bd
mov ebx, dword [ebp - 0x18]
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
add ebx, 0x14
jmp 0x42b920
mov eax, ebx
mov edx, edi
call fcn.0042b830
mov edx, dword [ebx + 4]
mov ebx, dword [ebx + 0xc]
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
xor ecx, ecx
test ebx, ebx
je 0x4300aa
mov edx, dword [eax + 4]
mov ecx, dword [edx + 0x2c]
cmp ecx, ebx
jae 0x4300aa
mov ecx, ebx
mov ebx, ecx
call fcn.00419420
mov ebx, dword [ebp - 0x18]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x42b920
mov esi, dword [ebp - 0x1c]
mov al, byte [esi + 0x4c]
test al, 0x81
je 0x43012c
test byte [edi + 0x90], 2
jne 0x43012c
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x4300e6
mov edx, dword [edi + 0xb0]
test edx, edx
je 0x43012c
test al, al
jns 0x430116
mov eax, dword [esi + 0xb8]
mov ecx, edi
mov dword [ebp - 0x3c], eax
call fcn.0042b000
mov ecx, dword [esi + 0xbc]
push eax
push ecx
mov dword [ebp - 0x44], eax
call dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
push edx
call fcn.004040f0
add esp, 0xc
jmp 0x43012c
mov eax, dword [esi + 0xbc]
mov ecx, dword [esi + 0xb8]
push edx
push edi
push eax
push 1
call ecx
add esp, 0x10
mov edx, dword [ebx + 4]
cmp edx, dword [0x4bad70]
jl 0x430174
mov edx, 1
cmp dword [edi + 0x88], edx
jle 0x43016d
mov ecx, 0x14
lea esp, [esp]
mov eax, dword [edi + 0x58]
cmp byte [eax + ecx], 0x14
jne 0x430161
mov dword [eax + ecx + 4], 0
inc edx
add ecx, 0x14
cmp edx, dword [edi + 0x88]
jl 0x430150
mov dword [ebx + 4], 0
inc dword [ebx + 4]
jmp 0x42e084
push 0x4b5620
mov esi, edi
call fcn.00423b10
add esp, 4
mov dword [ebp - 0x14], 5
jmp 0x42c6ba
push 0x4b566c
jmp 0x430181
mov eax, dword [edi + 0x6c]
mov ecx, esi
call fcn.004041a0
mov esi, dword [ebp - 0x1c]
mov ebx, 0x4b5764
mov eax, esi
call fcn.00404710
mov edx, dword [ebp - 0x18]
mov dword [edi + 0x6c], eax
mov eax, dword [edx + 4]
mov edx, dword [esi + 0x10]
mov ecx, eax
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 0xc]
mov edx, dword [ebp - 0xdc]
cmp dword [ecx], edx
je 0x4301e2
mov edi, dword [ebp - 0x1c]
mov esi, eax
call fcn.00443570
mov edi, dword [ebp - 0x20]
or dword [edi + 0x90], 1
mov dword [ebp - 0x14], 0x11
jmp 0x42c6ba
mov dword [ebp - 0x14], 7
jmp 0x42efa2
mov ecx, dword [ebx + 4]
mov dword [edi + 0x28], ecx
mov dl, byte [ebx + 8]
mov byte [edi + 0x8e], dl
mov dword [edi + 0x24], eax
test ecx, ecx
je 0x43028b
mov al, byte [ebx + 3]
mov esi, edi
test al, al
je 0x43025a
movzx eax, al
mov ecx, dword [eax*4 + 0x4b1acc]
push ecx
push 0x4b55e8
call fcn.00423b10
mov eax, dword [ebx + 0x10]
add esp, 8
test eax, eax
je 0x43026b
mov edx, dword [edi + 0x6c]
push eax
mov eax, dword [ebp - 0x1c]
push edx
push 0x4b5600
push eax
call fcn.00406000
add esp, 0x10
mov dword [edi + 0x6c], eax
jmp 0x43026b
mov ecx, dword [ebx + 0x10]
push ecx
push 0x4b4e18
call fcn.00423b10
add esp, 8
mov edx, dword [edi + 0x6c]
mov eax, dword [edi + 0xb0]
mov ecx, dword [ebp - 0x3c]
push edx
mov edx, dword [ebx + 4]
push eax
push ecx
push 0x4b5608
push edx
call fcn.00406270
add esp, 0x14
mov eax, edi
call fcn.00426640
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
cmp eax, 5
jne 0x4302a5
mov dword [edi + 0x28], eax
jmp 0x430738
mov eax, dword [edi + 0x28]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [ebp - 0x14], eax
jmp 0x430738
mov esi, dword [ebp - 0x1c]
mov eax, dword [esi + 0x130]
test eax, eax
je 0x4302f1
mov ecx, dword [ebp - 0x8c]
cmp ecx, dword [ebp - 0xcc]
jb 0x4302f1
mov edx, dword [esi + 0x134]
push edx
call eax
add esp, 4
test eax, eax
je 0x4302f1
mov dword [ebp - 0x14], 9
jmp 0x42c6bd
push 0
mov eax, edi
call fcn.004265d0
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x42c6bd
push 1
push edi
call fcn.004264c0
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp - 0x18]
add eax, 2
or eax, 1
mov dword [edi + 0x20], eax
mov eax, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea eax, [eax + edx*8]
xor ebx, ebx
add esp, 8
mov dword [edi + 0x68], eax
cmp dword [ecx + 8], ebx
jle 0x430373
mov esi, eax
lea ebx, [ebx]
mov ecx, 0x1000
test word [esi + 8], cx
je 0x43035d
mov eax, esi
call fcn.00422740
test eax, eax
jne 0x42d0b6
mov edi, dword [ebp - 0x20]
mov eax, esi
call fcn.00422840
mov edx, dword [ebp - 0x18]
inc ebx
add esi, 0x28
cmp ebx, dword [edx + 8]
jl 0x430340
mov esi, dword [ebp - 0x1c]
cmp byte [esi + 0x45], 0
jne 0x42d0e5
test byte [esi + 0x4c], 4
je 0x43039a
mov eax, dword [esi + 0xbc]
mov ecx, dword [esi + 0xb8]
push 0
push edi
push eax
push 4
call ecx
add esp, 0x10
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x48]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [edi + 0x24], ecx
mov dword [ebp - 0x14], 0x64
jmp 0x430738
mov eax, 0x139de
call fcn.0047f450
mov dword [ebp - 0x14], eax
jmp 0x42c6ba
cmp dword [ebx + 0x4c], 0
jne 0x4303e5
lea eax, [ebp - 0x210]
call fcn.00422b10
mov eax, 0x13a19
call fcn.0047f450
mov dword [ebp - 0x14], eax
jmp 0x42c6b7
sub ebx, dword [ebp - 0x48]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov byte [esi + 0x43], 0
mov dword [ebp - 0x14], 5
mov dword [edi + 0x28], 5
jmp 0x430738
mov esi, dword [ebp - 0x1c]
movzx edx, byte [esi + 0x43]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x3c], eax
cmp eax, edx
je 0x4304e6
test ecx, ecx
je 0x430456
push 0x204
mov eax, esi
call fcn.0047d390
add esp, 4
mov byte [esi + 0x43], 1
jmp 0x43048a
test eax, eax
je 0x43046d
cmp dword [esi + 0xa4], 0
jle 0x43046d
push 0x4b56a4
jmp 0x430181
push 1
mov eax, edi
call fcn.004265d0
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x430738
mov al, byte [ebp - 0x3c]
mov byte [esi + 0x43], al
mov eax, edi
call fcn.00426640
mov ecx, 5
cmp eax, ecx
jne 0x4304c4
sub ebx, dword [ebp - 0x48]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, 1
sub dl, byte [ebp - 0x3c]
mov dword [edi + 0x24], eax
mov byte [esi + 0x43], dl
mov dword [ebp - 0x14], ecx
mov dword [edi + 0x28], ecx
jmp 0x430738
mov edi, esi
call fcn.0047c980
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x28]
mov edi, dword [ebp - 0x20]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [ebp - 0x14], eax
jmp 0x430738
test eax, eax
jne 0x4304f1
mov eax, 0x4b56dc
jmp 0x4304ff
mov eax, 0x4b570c
test ecx, ecx
jne 0x4304ff
mov eax, 0x4b5738
push eax
mov esi, edi
call fcn.00423b10
add esp, 4
mov dword [ebp - 0x14], 1
jmp 0x42c6ba
mov dword [ebp - 0x14], 8
jmp 0x42c6bd
cmp al, 5
jne 0x42c6bd
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x48]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0x14]
mov dword [edi + 0x24], ecx
mov dword [edi + 0x28], edx
jmp 0x430738
mov dword [ebp - 0x14], 0x204
jmp 0x42c6ba
mov dword [ebp - 0x14], 6
mov byte [edi + 0x8e], 2
jmp 0x42c6bd
push 0x4b57d0
mov esi, edi
mov dword [ebp - 0x14], 1
call fcn.00423b10
add esp, 4
jmp 0x42c6ba
push esi
call fcn.00428d10
add esp, 4
push eax
push 0x4b4e18
mov esi, edi
call fcn.00423b10
add esp, 8
jmp 0x42c6ba
mov dword [ebp - 0x14], 1
mov eax, 0x4b57f8
cmp ecx, 5
je 0x4305bd
mov eax, 0x4b5800
push eax
push 0x4b5808
mov esi, edi
call fcn.00423b10
add esp, 8
jmp 0x42c6ba
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x1c]
push edx
call ecx
add esp, 4
jmp 0x42d0b9
mov dword [ebp - 0x14], 6
jmp 0x42c6ba
xor eax, eax
cmp byte [esi + 0x45], al
mov ecx, 0x4b8414
sete al
lea eax, [eax + eax + 7]
mov dword [ebp - 0x14], eax
mov dword [edi + 0x28], eax
cmp eax, 0x204
je 0x43062c
and eax, 0xff
cmp eax, 0x1a
ja 0x430631
mov eax, dword [eax*4 + 0x4b4b68]
test eax, eax
je 0x430631
mov ecx, eax
jmp 0x430631
mov ecx, 0x4b8424
push ecx
push 0x4b4e18
mov esi, edi
call fcn.00423b10
add esp, 8
jmp 0x42c6ba
mov ecx, 0x4b8424
push ecx
push 0x4b4e18
mov esi, edi
call fcn.00423b10
mov esi, dword [ebp - 0x1c]
add esp, 8
mov eax, dword [ebp - 0x14]
mov ebx, 1
mov dword [edi + 0x28], eax
cmp eax, 0xc0a
je 0x430699
and eax, 0xff
cmp eax, 0xe
je 0x43067f
cmp eax, 0xa
jne 0x430699
mov eax, dword [esi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x430694
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x430696
xor eax, eax
mov dword [esi + 0x3c], eax
mov edx, dword [edi + 0x6c]
mov eax, dword [edi + 0xb0]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x48]
push edx
push eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0x14]
push ecx
push 0x4b585c
push edx
call fcn.00406270
add esp, 0x14
mov eax, edi
call fcn.00426640
cmp dword [ebp - 0x14], 0xc0a
jne 0x430702
cmp byte [esi + 0x45], 0
jne 0x430702
cmp byte [esi + 0x46], 0
jne 0x430702
cmp dword [esi + 0xa8], 0
mov byte [esi + 0x45], 1
jle 0x4306fc
mov dword [esi + 0xf8], ebx
add dword [esi + 0x100], ebx
mov al, byte [ebp - 0x61]
mov dword [ebp - 0x14], ebx
test al, al
je 0x430738
mov ecx, dword [esi + 0x10]
movzx ebx, al
dec ebx
mov eax, ebx
add eax, eax
mov edx, dword [ecx + eax*8 + 0xc]
push edx
call fcn.0044a7d0
add esp, 4
cmp ebx, 1
je 0x430738
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x1c]
push ecx
call fcn.0044a7d0
add esp, 4
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x8c]
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], eax
add dword [edi + 0xac], ecx
cmp dword [edi + 0x98], 0
je 0x430768
push edi
call fcn.00424f70
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004a3bc8
mov esp, ebp
pop ebp
ret