Function at 0x42c498
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2d4
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x68]
push esi
push edi
mov edi, dword [ebx]
mov cl, byte [edi + 0x4e]
xor esi, esi
cmp dword [ebx + 0x28], 7
mov byte [esp + 0x54], cl
mov ecx, dword [ebx + 0x58]
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], edi
mov byte [esp + 0x63], 0
mov dword [esp + 0x84], esi
mov dword [esp + 0xd4], esi
mov dword [esp + 0x18], ecx
je 0x4313f0
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], esi
mov dword [ebx + 0x78], esi
mov ecx, dword [edi + 0x108]
mov dword [edi + 0x188], esi
test ecx, ecx
jne 0x430c1f
mov edi, dword [ebx + 0x24]
imul edi, edi, 0x14
add edi, eax
mov dl, byte [edi]
inc dword [esp + 0xd4]
movzx eax, dl
mov dword [esp + 0x10], edi
cmp eax, 0xa8
ja case.0x42c52c.86
jmp dword [eax*4 + 0x431414]
mov ecx, dword [edi + 4]
imul ecx, ecx, 0x28
add ecx, dword [esp + 0x18]
push 4
pop eax
mov word [ecx + 8], ax
mov eax, edi
sub eax, dword [esp + 0x50]
push 0x14
cdq
pop esi
idiv esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x42ebe2
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, dword [esp + 0x18]
mov eax, dword [edi]
imul eax, eax, 0x14
add eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov eax, 0x80
mov word [edi + 8], ax
jmp 0x42e722
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [esp + 0x18]
dec eax
cdq
mov dword [ecx], eax
push 4
pop eax
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
cmp dword [edi + 8], 0
jne 0x42ebe2
jmp case.0x42c52c.86
mov edi, dword [edi + 4]
mov eax, dword [esp + 0x50]
imul edi, edi, 0x28
add edi, dword [esp + 0x18]
mov ecx, dword [edi]
imul ecx, ecx, 0x14
mov ecx, dword [ecx + eax + 8]
imul ecx, ecx, 0x14
lea eax, [ecx + eax - 0x14]
jmp 0x42c56e
mov ecx, dword [edi + 4]
imul ecx, ecx, 0x28
add ecx, dword [esp + 0x18]
push 4
pop eax
mov word [ecx + 8], ax
mov eax, edi
sub eax, dword [esp + 0x50]
push 0x14
cdq
pop edi
idiv edi
mov esi, dword [ecx]
imul esi, esi, 0x14
add esi, dword [esp + 0x50]
mov dword [esp + 0x10], esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x42e722
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x28
test byte [eax + ecx + 8], 1
je case.0x42c52c.86
mov eax, edi
sub eax, dword [esp + 0x50]
push 0x14
cdq
pop ecx
idiv ecx
cmp dword [edi + 4], 0
mov dword [esp + 0x30], eax
jne 0x43109a
lea ecx, [ebx + 0xc8]
mov edx, dword [ecx]
test edx, edx
je 0x43109a
mov eax, dword [edx + 4]
dec dword [ebx + 0xd0]
mov dword [ecx], eax
mov eax, dword [ebx + 0x2c]
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x68], eax
mov edi, edx
mov dword [ecx + 0x64], eax
call fcn.00428e87
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 4
jne 0x42c672
mov ecx, dword [ebx + 0x68]
imul eax, eax, 0x14
mov eax, dword [eax + ecx + 8]
dec eax
mov ecx, dword [ebx + 0x68]
imul eax, eax, 0x14
mov edx, dword [ebx + 0x58]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x18], edx
add eax, ecx
mov dword [esp + 0x10], eax
jmp 0x42e722
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, eax
mov eax, dword [edi + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x42c52c.86
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x42c52c.86
mov eax, edi
mov ecx, ebx
call fcn.0042c471
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [edi + 0x10]
fld qword [ecx]
fstp qword [eax]
jmp case.0x42c52c.86
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov esi, eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x30], eax
call fcn.0041426d
cmp byte [esp + 0x54], 1
mov dword [edi + 4], eax
je 0x42c788
push 1
push 0xffffffffffffffff
push dword [esp + 0x38]
xor eax, eax
mov ecx, esi
call fcn.00427448
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x430566
test byte [esi + 8], 2
movzx eax, byte [esp + 0x54]
je 0x42c741
movzx ecx, byte [esi + 0xa]
cmp ecx, eax
je 0x42c741
push eax
push esi
call fcn.00413d40
pop ecx
pop ecx
jmp 0x42c743
xor eax, eax
test eax, eax
jne 0x4313f0
and dword [esi + 0x18], eax
mov edi, dword [esp + 0x10]
mov eax, 0x800
or word [esi + 8], ax
cmp byte [edi + 1], 0xf9
jne 0x42c774
mov eax, dword [edi + 0x10]
test eax, eax
je 0x42c774
push eax
push dword [esp + 0x18]
call fcn.004120c1
pop ecx
pop ecx
mov byte [edi + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x6c]
jg 0x430566
mov byte [edi], 0x48
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, 0xa02
mov word [eax + 8], cx
mov ecx, dword [edi + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 0xc], ecx
mov cl, byte [esp + 0x54]
mov byte [eax + 0xa], cl
jmp case.0x42c52c.86
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [edi + 4]
mov esi, eax
mov eax, dword [edi + 0xc]
sub eax, dword [edi + 8]
neg ecx
sbb ecx, ecx
and dword [esi + 0xc], 0
and ecx, 0x100
inc ecx
movzx ecx, cx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ecx
mov word [esi + 8], cx
test eax, eax
jle case.0x42c52c.86
add esi, 0x28
mov eax, esi
call fcn.004271cf
and dword [esi + 0xc], 0
mov ax, word [esp + 0x30]
dec dword [esp + 0x24]
cmp dword [esp + 0x24], 0
mov word [esi + 8], ax
jg 0x42c7ff
jmp case.0x42c52c.86
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov edx, 0xff41
mov cx, word [eax + 8]
and cx, dx
or cx, 1
mov word [eax + 8], cx
jmp case.0x42c52c.86
mov eax, edi
mov ecx, ebx
call fcn.0042c471
push 0
push dword [edi + 4]
mov esi, eax
push dword [edi + 0x10]
xor eax, eax
mov ecx, esi
call fcn.00427448
mov al, byte [esp + 0x60]
add esp, 0xc
mov byte [esi + 0xa], al
jmp case.0x42c52c.86
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x64]
imul eax, eax, 0x28
lea esi, [eax + ecx - 0x28]
mov ecx, esi
call fcn.00427335
test eax, eax
jne 0x430566
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov ecx, 0x2400
mov dword [esp + 0x1c], eax
test word [eax + 8], cx
je 0x42c8ae
call fcn.004271cf
mov eax, dword [esp + 0x1c]
push 5
pop ecx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov cx, word [eax + 8]
mov edx, 0xebff
and cx, dx
mov edx, 0x840
or cx, dx
mov word [eax + 8], cx
jmp 0x42e722
mov ebx, dword [edi + 4]
mov esi, dword [edi + 8]
imul ebx, ebx, 0x28
mov eax, dword [edi + 0xc]
imul esi, esi, 0x28
add ebx, dword [esp + 0x18]
add esi, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, esi
call fcn.00427428
mov eax, 0x1000
test word [esi + 8], ax
je 0x42c916
push esi
call fcn.00426c4f
pop ecx
test eax, eax
jne 0x4313ed
mov edi, dword [esp + 0x10]
add ebx, 0x28
add esi, 0x28
dec dword [esp + 0x20]
jne 0x42c8f1
mov ebx, dword [ebp + 8]
jmp case.0x42c52c.86
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 8]
mov dword [esp + 0x24], eax
imul esi, esi, 0x28
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
add esi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
push 0x1000
push dword [esp + 0x20]
push esi
call fcn.0042736a
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x42c979
push esi
call fcn.00426c4f
pop ecx
test eax, eax
jne 0x4313f0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
dec dword [esp + 0x24]
test eax, eax
je case.0x42c52c.86
add esi, 0x28
add dword [esp + 0x1c], 0x28
jmp 0x42c949
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
push 0x1000
push eax
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [esp + 0x20]
push eax
call fcn.0042736a
add esp, 0xc
jmp case.0x42c52c.86
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x28
push dword [eax + ecx + 4]
push dword [eax + ecx]
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, ecx
call fcn.00427232
pop ecx
pop ecx
jmp case.0x42c52c.86
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
imul eax, eax, 0x28
mov esi, dword [edi + 0xc]
imul ecx, ecx, 0x28
add eax, dword [esp + 0x18]
imul esi, esi, 0x28
add ecx, dword [esp + 0x18]
add esi, dword [esp + 0x18]
mov dl, byte [ecx + 8]
mov dword [esp + 0x1c], eax
movzx eax, word [eax + 8]
or dl, al
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], eax
test dl, 1
je 0x42ca24
mov eax, esi
call fcn.004271cf
jmp case.0x42c52c.86
test al, 0x12
jne 0x42ca49
mov edi, dword [esp + 0x1c]
push 0
push dword [esp + 0x58]
call fcn.00426d1e
pop ecx
pop ecx
test eax, eax
jne 0x4313f0
mov eax, edi
mov ax, word [eax + 8]
jmp 0x42ca67
test eax, 0x4000
je 0x42ca7a
mov edi, dword [esp + 0x1c]
push edi
call fcn.00426ca4
pop ecx
test eax, eax
jne 0x4313f0
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
mov ecx, dword [esp + 0x28]
movzx eax, ax
mov dword [esp + 0x3c], eax
movzx eax, word [ecx + 8]
mov dword [esp + 0x24], eax
test al, 0x12
jne 0x42caa7
mov edi, dword [esp + 0x28]
push 0
push dword [esp + 0x58]
call fcn.00426d1e
pop ecx
pop ecx
test eax, eax
jne 0x4313f0
mov eax, edi
mov ax, word [eax + 8]
jmp 0x42cac5
test eax, 0x4000
je 0x42cad8
mov edi, dword [esp + 0x28]
push edi
call fcn.00426ca4
pop ecx
test eax, eax
jne 0x4313f0
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
mov ecx, dword [esp + 0x28]
movzx eax, ax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov edi, eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x6c]
mov ecx, edx
cdq
cmp ecx, edx
jg 0x430566
jl 0x42cb01
cmp edi, eax
ja 0x430566
xor eax, eax
cmp esi, dword [esp + 0x28]
sete al
push eax
lea eax, [edi + 3]
push eax
push esi
call fcn.00426b1a
add esp, 0xc
test eax, eax
jne 0x4313f0
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 2
mov word [esi + 8], ax
mov eax, dword [esp + 0x28]
cmp esi, eax
je 0x42cb5a
push dword [eax + 0xc]
push dword [eax + 0x10]
push dword [esi + 0x10]
call fcn.00497bcc
mov ax, word [esp + 0x30]
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov word [ecx + 8], ax
mov eax, dword [esp + 0x1c]
push dword [eax + 0xc]
mov ecx, dword [esp + 0x2c]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [ecx + 0xc]
push eax
call fcn.00497bcc
mov ax, word [esp + 0x48]
mov ecx, dword [esp + 0x28]
mov word [ecx + 8], ax
mov eax, dword [esi + 0x10]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x10]
mov byte [edi + eax + 1], 0
mov eax, dword [esi + 0x10]
mov byte [edi + eax + 2], 0
mov eax, 0x200
add esp, 0xc
or word [esi + 8], ax
mov al, byte [esp + 0x54]
mov dword [esi + 0xc], edi
mov byte [esi + 0xa], al
jmp 0x42e722
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
mov eax, esi
call fcn.0042c43f
movzx eax, ax
mov dword [esp + 0x30], eax
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
call fcn.0042c43f
movzx ecx, ax
mov eax, dword [edi + 0xc]
and cl, byte [esp + 0x30]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov ax, word [eax + 8]
or ax, word [esi + 8]
movzx eax, ax
test cl, 4
je 0x42cd45
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x94], eax
movzx eax, byte [edi]
sub eax, 0x67
mov dword [esp + 0x90], edx
je 0x42cd0e
dec eax
je 0x42ccf8
dec eax
je 0x42ccde
dec eax
je 0x42cc7b
mov eax, dword [esp + 0xac]
mov esi, ecx
or esi, eax
je 0x42ce14
mov esi, ecx
and esi, eax
cmp esi, 0xffffffff
jne 0x42cc6a
xor ecx, ecx
inc ecx
xor eax, eax
push eax
push ecx
push dword [esp + 0x9c]
push edx
call fcn.0049dc40
jmp 0x42ccce
mov eax, ecx
or eax, dword [esp + 0xac]
je 0x42ce14
mov eax, ecx
and eax, dword [esp + 0xac]
cmp eax, 0xffffffff
jne 0x42ccb3
cmp dword [esp + 0x90], 0
jne 0x42ccb3
cmp dword [esp + 0x94], 0x80000000
je 0x42cd4d
push dword [esp + 0xac]
push ecx
push dword [esp + 0x9c]
push dword [esp + 0x9c]
call fcn.0049dd00
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x42cd2c
push dword [esp + 0xac]
lea eax, [esp + 0x94]
push ecx
push eax
call fcn.00415194
add esp, 0xc
jmp 0x42cd28
push dword [esp + 0xac]
lea eax, [esp + 0x94]
push ecx
call fcn.00415148
jmp 0x42cd26
push dword [esp + 0xac]
lea edi, [esp + 0x94]
push ecx
call fcn.004150c4
mov edi, dword [esp + 0x18]
pop ecx
pop ecx
test eax, eax
jne 0x42cd4d
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x94]
jmp 0x42cfa5
test al, 1
jne 0x42ce14
mov eax, esi
call fcn.00426f59
fstp qword [esp + 0x30]
mov eax, dword [esp + 0x28]
call fcn.00426f59
movzx eax, byte [edi]
sub eax, 0x67
je 0x42cdfe
dec eax
je 0x42cdf8
dec eax
je 0x42cdf2
dec eax
je 0x42cddf
mov ecx, esi
fstp st(0)
call fcn.00426ef0
mov ecx, dword [esp + 0x28]
mov esi, eax
mov dword [esp + 0xac], edx
call fcn.00426ef0
mov ecx, esi
or ecx, dword [esp + 0xac]
je 0x42ce14
mov ecx, esi
and ecx, dword [esp + 0xac]
cmp ecx, 0xffffffff
jne 0x42cdb9
xor esi, esi
inc esi
and dword [esp + 0xac], 0
push dword [esp + 0xac]
push esi
push edx
push eax
call fcn.0049dc40
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], edx
fild qword [esp + 0x150]
jmp 0x42ce02
fldz
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x44
jnp 0x42ce12
fdiv qword [esp + 0x30]
jmp 0x42ce02
fmul qword [esp + 0x30]
jmp 0x42ce02
fsub qword [esp + 0x30]
jmp 0x42ce02
fadd qword [esp + 0x30]
push ecx
push ecx
fst qword [esp]
call fcn.00414240
pop ecx
pop ecx
test eax, eax
je 0x42ce1d
fstp st(0)
mov eax, dword [esp + 0x1c]
jmp 0x42ca1a
mov eax, dword [esp + 0x1c]
mov cx, word [eax + 8]
fstp qword [eax]
mov edx, 0x3e40
and cx, dx
or cx, 8
jmp 0x42c840
mov eax, dword [edi + 4]
test eax, eax
je case.0x42c52c.86
push 0
push 0
imul eax, eax, 0x28
add eax, dword [esp + 0x20]
jmp 0x42c9d4
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
imul eax, eax, 0x28
mov esi, dword [edi + 4]
imul ecx, ecx, 0x28
add eax, dword [esp + 0x18]
imul esi, esi, 0x28
add ecx, dword [esp + 0x18]
add esi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov al, byte [ecx + 8]
or al, byte [esi + 8]
test al, 1
jne 0x42ce14
call fcn.00426ef0
mov ecx, esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
call fcn.00426ef0
mov esi, eax
mov al, byte [edi]
cmp al, 0x63
jne 0x42cea8
and dword [esp + 0x70], esi
and dword [esp + 0x74], edx
jmp 0x42cf97
cmp al, 0x64
jne 0x42ceb9
or dword [esp + 0x70], esi
or dword [esp + 0x74], edx
jmp 0x42cf97
mov ecx, esi
or ecx, edx
je 0x42cf97
test edx, edx
jg 0x42cef8
jl 0x42cecd
test esi, esi
jae 0x42ceed
mov cl, 0xcb
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x42cee8
jg 0x42cedf
cmp esi, 0xffffffc0
jbe 0x42cee8
neg esi
adc edx, 0
neg edx
jmp 0x42ceed
push 0x40
pop esi
xor edx, edx
test edx, edx
jl 0x42cf1e
jg 0x42cef8
cmp esi, 0x40
jb 0x42cf1e
cmp dword [esp + 0x74], 0
jg 0x42cf11
jl 0x42cf08
cmp dword [esp + 0x70], 0
jae 0x42cf11
cmp al, 0x65
je 0x42cf11
or eax, 0xffffffff
jmp 0x42cf13
xor eax, eax
cdq
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
jmp 0x42cf97
mov edx, dword [esp + 0x74]
cmp al, 0x65
mov eax, dword [esp + 0x70]
mov ecx, esi
jne 0x42cf41
call fcn.0049dc00
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
jmp 0x42cf81
call fcn.0049dc20
cmp dword [esp + 0x74], 0
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
jg 0x42cf81
jl 0x42cf64
cmp dword [esp + 0x70], 0
jae 0x42cf81
push 0x40
pop ecx
or edx, 0xffffffff
sub ecx, esi
mov eax, edx
call fcn.0049dc00
or dword [esp + 0xc0], eax
or dword [esp + 0xc4], edx
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], ecx
mov cx, word [eax + 8]
mov edx, 0x3e40
and cx, dx
or cx, 4
jmp 0x42c840
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
call fcn.0042700a
mov eax, dword [edi + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x42c52c.86
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
movzx eax, word [esi + 8]
test al, 4
jne 0x42d01a
push dword [esp + 0x54]
mov eax, esi
push 0x43
call fcn.0042c31f
movzx eax, word [esi + 8]
pop ecx
pop ecx
test al, 4
jne 0x42d01a
cmp dword [edi + 8], 0
jne 0x42ebe2
mov dword [esp + 0xc], 0x14
jmp 0x4308a0
and eax, 0x3e40
or eax, 4
mov word [esi + 8], ax
jmp case.0x42c52c.86
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
test byte [esi + 8], 0x24
je case.0x42c52c.86
call fcn.0042702d
jmp case.0x42c52c.86
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
mov eax, 0x4000
test word [esi + 8], ax
je 0x42d06b
push esi
call fcn.00426ca4
pop ecx
mov dword [esp + 0xc], eax
jmp 0x42d070
and dword [esp + 0xc], 0
push dword [esp + 0x54]
mov cl, byte [edi + 8]
mov eax, esi
call fcn.00427143
pop ecx
cmp dword [esp + 0xc], 0
jne 0x4308a0
jmp 0x42e722
mov esi, dword [edi + 0xc]
mov ecx, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
imul ecx, ecx, 0x28
add ecx, dword [esp + 0x18]
movzx edx, word [esi + 8]
movzx eax, word [ecx + 8]
mov dword [esp + 0x28], edx
or edx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], eax
test dl, 1
je 0x42d12e
movzx eax, word [edi + 2]
test al, al
jns 0x42d0f7
mov al, byte [esp + 0x28]
and al, byte [esp + 0x2c]
test al, 1
je 0x42d0e3
test dword [esp + 0x28], 0x100
jne 0x42d0e3
xor eax, eax
jmp 0x42d2cf
test byte [esp + 0x28], 1
push 0
pop eax
sete al
lea eax, [eax + eax - 1]
jmp 0x42d2b6
test al, 0x20
je 0x42d127
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
xor ecx, ecx
mov dx, word [eax + 8]
mov esi, 0x3e40
inc ecx
and dx, si
or dx, cx
mov dword [esp + 0x84], ecx
mov word [eax + 8], dx
jmp case.0x42c52c.86
test al, 0x10
jmp 0x42c59f
mov al, byte [edi + 2]
and al, 0x47
cmp al, 0x43
jl 0x42d22d
test dl, 2
je 0x42d17a
mov al, byte [esp + 0x2c]
and al, 0x2e
cmp al, 2
jne 0x42d162
mov eax, dword [esp + 0x1c]
push 0
call fcn.0042c2ab
movzx eax, word [esi + 8]
pop ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x28]
and al, 0x2e
cmp al, 2
jne 0x42d17a
push 0
mov eax, esi
call fcn.0042c2ab
pop ecx
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx + 8]
and al, byte [esi + 8]
test al, 4
je 0x42d2a3
mov eax, dword [esi + 4]
cmp eax, dword [ecx + 4]
jl 0x42d20d
jg 0x42d198
mov eax, dword [ecx]
cmp dword [esi], eax
jbe 0x42d20d
xor eax, eax
inc eax
movzx edx, byte [edi]
movzx edx, byte [edx + 0x4a20c4]
mov dword [esp + 0x40], edx
mov dx, word [esp + 0x2c]
mov word [ecx + 8], dx
mov cx, word [esp + 0x28]
mov word [esi + 8], cx
movzx edx, word [edi + 2]
test dl, 0x20
je 0x42d2de
mov ecx, dword [edi + 8]
imul ecx, ecx, 0x28
add ecx, dword [esp + 0x18]
mov dword [esp + 0x84], eax
test dl, 8
je 0x42d1f0
xor eax, eax
cmp byte [edi], 0x35
sete al
cmp eax, dword [esp + 0x40]
je case.0x42c52c.86
mov ax, word [ecx + 8]
mov edx, 0x3e40
and ax, dx
or ax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0x40]
jmp 0x42c69c
mov eax, dword [ecx + 4]
cmp dword [esi + 4], eax
jg 0x42d0dc
jl 0x42d225
mov eax, dword [ecx]
cmp dword [esi], eax
jae 0x42d0dc
or eax, 0xffffffff
jmp 0x42d2ba
cmp al, 0x42
jne 0x42d2a3
test byte [esp + 0x2c], 2
jne 0x42d26c
test byte [esp + 0x2c], 0x2c
je 0x42d26c
mov edi, dword [esp + 0x1c]
push 1
push dword [esp + 0x58]
call fcn.00426d1e
mov eax, edi
mov ax, word [eax + 8]
xor ax, word [esp + 0x34]
mov edi, dword [esp + 0x18]
pop ecx
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [esp + 0x2c], ax
test byte [esp + 0x28], 2
jne 0x42d2a3
test byte [esp + 0x28], 0x2c
je 0x42d2a3
push 1
push dword [esp + 0x58]
mov edi, esi
call fcn.00426d1e
mov ax, word [esi + 8]
xor ax, word [esp + 0x30]
mov edi, dword [esp + 0x18]
pop ecx
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [esp + 0x28], ax
push dword [edi + 0x10]
mov edx, dword [esp + 0x20]
mov eax, esi
call fcn.0042a0ce
pop ecx
mov ecx, dword [esp + 0x1c]
test eax, eax
jge 0x42d2c9
movzx edx, byte [edi]
movzx edx, byte [edx + 0x4a20b4]
jmp 0x42d1a5
jne 0x42d19b
movzx edx, byte [edi]
movzx edx, byte [edx + 0x4a20bc]
jmp 0x42d1a5
cmp dword [esp + 0x40], 0
jmp 0x42c59f
cmp dword [esp + 0x84], 0
jmp 0x42c59f
test byte [edi + 2], 1
jne 0x42d302
and dword [esp + 0x20], 0
jmp 0x42d30c
mov eax, dword [edi - 4]
add eax, 4
mov dword [esp + 0x20], eax
mov edx, dword [edi + 4]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x64], edx
mov edx, dword [edi + 8]
xor esi, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], esi
test eax, eax
jle case.0x42c52c.86
add ecx, 0x14
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x20]
test eax, eax
je 0x42d348
mov esi, dword [eax + esi*4]
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x10]
mov edx, dword [esp + 0x44]
movzx ecx, byte [ecx + edx]
push eax
mov eax, dword [esp + 0x44]
lea edx, [esi + eax]
mov eax, dword [esp + 0x68]
imul edx, edx, 0x28
add edx, dword [esp + 0x1c]
add eax, esi
imul eax, eax, 0x28
add eax, dword [esp + 0x1c]
and ecx, 1
mov dword [esp + 0x4c], ecx
call fcn.0042a0ce
pop ecx
mov dword [esp + 0x84], eax
test eax, eax
jne 0x42d3aa
mov esi, dword [esp + 0x44]
add dword [esp + 0x24], 4
inc esi
cmp esi, dword [esp + 0x30]
mov dword [esp + 0x44], esi
jl 0x42d33d
jmp case.0x42c52c.86
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x44]
test byte [ecx + eax], 2
je 0x42d3e7
mov eax, dword [esp + 0x64]
lea ecx, [esi + eax]
mov eax, dword [esp + 0x18]
imul ecx, ecx, 0x28
test byte [ecx + eax + 8], 1
jne 0x42d3e0
mov ecx, dword [esp + 0x40]
add esi, ecx
imul esi, esi, 0x28
test byte [esi + eax + 8], 1
je 0x42d3e7
neg dword [esp + 0x84]
cmp dword [esp + 0x48], 0
je case.0x42c52c.86
neg dword [esp + 0x84]
jmp case.0x42c52c.86
cmp dword [esp + 0x84], 0
jge 0x42d41b
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x50]
imul eax, eax, 0x14
lea eax, [eax + ecx - 0x14]
jmp 0x42c685
mov ecx, dword [esp + 0x50]
jne 0x42d426
mov eax, dword [edi + 8]
jmp 0x42d40f
mov eax, dword [edi + 0xc]
jmp 0x42d40f
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
push 2
call fcn.00426f7a
mov esi, eax
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [esp + 0x1c]
pop ecx
push 2
call fcn.00426f7a
imul esi, esi, 3
cmp byte [edi], 0x2c
pop ecx
jne 0x42d463
movzx eax, byte [esi + eax + 0x4a2100]
jmp 0x42d46b
movzx eax, byte [esi + eax + 0x4a210c]
mov ecx, dword [edi + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [esp + 0x18]
cmp eax, 2
jne 0x42d48c
mov ax, word [ecx + 8]
mov edx, 0x3e40
and ax, dx
or ax, 1
jmp 0x42d4a2
cdq
mov dword [ecx], eax
mov ax, word [ecx + 8]
mov dword [ecx + 4], edx
mov edx, 0x3e40
and ax, dx
or ax, 4
mov word [ecx + 8], ax
jmp case.0x42c52c.86
mov eax, dword [edi + 4]
push dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [esp + 0x1c]
call fcn.00426f7a
xor eax, dword [edi + 0x10]
pop ecx
cdq
push edx
push eax
mov eax, dword [edi + 8]
jmp 0x42ce47
mov eax, dword [edi + 4]
mov esi, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
test byte [eax + 8], 1
jne 0x42ca18
push 0
call fcn.00426f7a
neg eax
sbb eax, eax
inc eax
cdq
pop ecx
push edx
push eax
mov eax, esi
jmp 0x42c9d4
mov eax, dword [edi + 4]
mov esi, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, esi
call fcn.004271cf
mov ecx, dword [esp + 0x1c]
test byte [ecx + 8], 1
jne case.0x42c52c.86
push 4
pop eax
mov word [esi + 8], ax
call fcn.00426ef0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x42c52c.86
mov ecx, dword [ebx + 0xc8]
test ecx, ecx
je 0x42d597
mov eax, edi
sub eax, dword [ebx + 0x68]
push 0x14
cdq
pop esi
idiv esi
mov edx, dword [ecx + 0x18]
xor ecx, ecx
inc ecx
mov dword [esp + 0x30], ecx
mov esi, eax
and eax, 7
mov dword [esp + 0x48], eax
mov ecx, eax
mov eax, dword [esp + 0x30]
shl eax, cl
shr esi, 3
test byte [esi + edx], al
jne 0x42ebe2
mov eax, dword [ebx + 0xc8]
mov eax, dword [eax + 0x18]
add esi, eax
mov al, 1
shl al, cl
or byte [esi], al
jmp 0x42d5a6
mov eax, dword [ebx + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 4]
je 0x42ebe2
mov eax, dword [ebx + 0x68]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
jmp case.0x42c52c.86
mov eax, dword [edi + 4]
push dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [esp + 0x1c]
call fcn.00426f7a
pop ecx
test eax, eax
jmp 0x42c59f
xor eax, eax
cmp dword [edi + 0xc], eax
sete al
push eax
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [esp + 0x1c]
call fcn.00426f7a
pop ecx
test eax, eax
je 0x42ebe2
jmp case.0x42c52c.86
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x28
test byte [eax + ecx + 8], 1
jmp 0x42c59f
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x28
test byte [eax + ecx + 8], 1
jmp 0x42d5e9
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 2], 0
je case.0x42c52c.86
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
call fcn.004271cf
jmp 0x42ebe2
mov ecx, dword [ebx + 0x60]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 8]
lea ecx, [esp + 0x44]
lea edx, [esp + 0x40]
mov dword [esp + 0x44], eax
call fcn.00429b50
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
mov esi, dword [esp + 0x40]
imul edi, edi, 0x28
mov eax, dword [esi + 0x48]
add edi, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x28], edi
cmp eax, dword [ebx + 0x20]
je 0x42d775
cmp byte [esi + 2], 0
je 0x42d6d0
cmp byte [esi], 3
jne 0x42d6c2
mov eax, dword [esi + 0x20]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
lea edx, [esi + 0x54]
mov ecx, dword [eax + 0xc]
mov dword [edx], ecx
mov dword [esi + 0x50], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], edx
mov dword [esi + 0x4c], eax
jmp 0x42d70d
mov eax, dword [esp + 0x28]
call fcn.004271cf
jmp 0x42e722
mov edi, dword [esi + 0x28]
mov ecx, edi
call fcn.004213ff
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x54]
push eax
mov ecx, edi
mov dword [esp + 0x24], eax
call fcn.0042181e
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x50]
add esp, 4
cmp eax, dword [ecx + 0x6c]
ja 0x430566
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x40]
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x42d72a
mov ecx, dword [esp + 0x2c]
movzx eax, al
mov dword [ecx], eax
xor eax, eax
inc eax
jmp 0x42d73a
mov edi, dword [esp + 0x2c]
call fcn.00414f1a
mov edi, dword [esp + 0x28]
movzx eax, al
mov ecx, dword [esp + 0x2c]
movzx eax, al
mov dword [esi + 0x30], eax
xor eax, eax
mov word [esi + 0x3a], ax
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
cmp edx, dword [ecx]
jae 0x42d7dc
and dword [esi + 0x4c], 0
and dword [eax], 0
mov eax, dword [ecx]
cmp eax, 0x18003
ja 0x42d95d
cmp eax, dword [esi + 0x50]
ja 0x42d95d
movzx ecx, word [esi + 0x3a]
mov eax, dword [esp + 0x44]
cmp ecx, eax
jg 0x42d987
mov eax, dword [esi + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, dword [ecx]
jae 0x42d980
cmp dword [esi + 0x4c], 0
jne 0x42d7dc
push 0xa
xor eax, eax
pop ecx
lea edi, [esp + 0x268]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + 0x28]
lea eax, [esp + 0x268]
xor esi, esi
call fcn.0042768e
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
mov eax, dword [esp + 0x278]
mov esi, dword [esp + 0x40]
jmp 0x42d7df
mov eax, dword [esi + 0x4c]
mov edx, dword [esp + 0x2c]
and dword [esp + 0x9c], 0
mov dword [esp + 0x4c], eax
movzx eax, word [esi + 0x3a]
mov ecx, dword [edx + eax*4]
mov edx, dword [edx]
mov dword [esp + 0x98], ecx
mov ecx, dword [esi + 0x30]
add ecx, dword [esp + 0x4c]
add edx, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
lea eax, [esi + eax*4 + 0x58]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x3c], eax
movzx eax, byte [ecx]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov dword [edx], eax
cmp eax, 0x80
jae 0x42d852
movzx eax, al
movzx eax, byte [eax + 0x4a1ff0]
cdq
inc ecx
add dword [esp + 0x98], eax
mov dword [esp + 0x64], ecx
adc dword [esp + 0x9c], edx
jmp 0x42d888
mov ecx, dword [esp + 0x64]
lea edi, [esp + 0x1c]
call fcn.00414f1a
mov ecx, dword [esp + 0x3c]
movzx eax, al
add dword [esp + 0x64], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx], eax
call fcn.00429b92
add dword [esp + 0x98], eax
mov ecx, dword [esp + 0x64]
adc dword [esp + 0x9c], 0
mov edx, dword [esp + 0x20]
add dword [esp + 0x3c], 4
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x2c]
inc edx
cmp edx, dword [esp + 0x44]
mov dword [esp + 0x20], edx
mov dword [edi + edx*4], eax
jg 0x42d8b4
cmp ecx, dword [esp + 0x24]
jb 0x42d81e
cmp ecx, dword [esp + 0x24]
jb 0x42d8d3
ja 0x42d8ec
mov eax, dword [esi + 0x50]
xor edi, edi
cmp dword [esp + 0x98], eax
jne 0x42d8ec
cmp dword [esp + 0x9c], edi
jne 0x42d8ec
mov eax, dword [esi + 0x50]
xor edi, edi
cmp dword [esp + 0x9c], edi
jb 0x42d8fa
ja 0x42d8ec
cmp dword [esp + 0x98], eax
jbe 0x42d8fa
mov eax, dword [esp + 0x2c]
xor edx, edx
cmp dword [eax], edx
jne 0x42d94c
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x4c]
mov word [esi + 0x3a], dx
mov dword [esi + 0x30], ecx
cmp dword [esi + 0x4c], 0
jne 0x42d917
lea eax, [esp + 0x268]
call fcn.00426e5e
mov edi, dword [esp + 0x28]
movzx eax, word [esi + 0x3a]
cmp eax, dword [esp + 0x44]
jg 0x42d98f
mov eax, dword [esp + 0x10]
cmp byte [eax + 1], 0xf5
jne 0x42d6c2
push 0x800
push dword [eax + 0x10]
push dword [esp + 0x30]
call fcn.0042736a
add esp, 0xc
jmp 0x42e722
cmp dword [esi + 0x4c], edx
jne 0x42d95d
lea eax, [esp + 0x268]
call fcn.00426e5e
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 0xc]
test eax, eax
jg 0x42d40f
push 0x152d5
call fcn.004655e7
pop ecx
mov dword [esp + 0xc], eax
jmp 0x4308a0
and dword [esp + 0x1c], 0
jmp 0x42d91b
mov eax, dword [esi + eax*4 + 0x58]
mov dword [esp + 0x1c], eax
mov eax, 0x2400
test word [edi + 8], ax
je 0x42d9a1
mov eax, edi
call fcn.004271cf
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x54]
cmp eax, dword [ecx + 4]
jb 0x42da4f
mov esi, dword [esi + 0x4c]
add esi, dword [ecx]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], esi
cmp eax, 0xc
jae 0x42d9de
mov ecx, esi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
call fcn.00429c80
jmp 0x42e722
lea esi, [eax - 0xc]
mov al, byte [esp + 0x54]
shr esi, 1
mov byte [edi + 0xa], al
lea eax, [esi + 2]
cmp dword [edi + 0x18], eax
mov dword [edi + 0xc], esi
jge 0x42da12
push 0
xor ecx, ecx
push eax
inc ecx
push edi
mov word [edi + 8], cx
call fcn.00426b1a
add esp, 0xc
test eax, eax
jne 0x4313f0
jmp 0x42da18
mov eax, dword [edi + 0x14]
mov dword [edi + 0x10], eax
mov edi, dword [esp + 0x28]
push esi
push dword [esp + 0x50]
push dword [edi + 0x10]
call fcn.00497bcc
mov eax, dword [edi + 0x10]
mov byte [esi + eax], 0
mov eax, dword [edi + 0x10]
mov byte [eax + esi + 1], 0
mov eax, dword [esp + 0x28]
add esp, 0xc
and eax, 1
mov ax, word [eax*2 + 0x4a2118]
jmp 0x42c577
mov al, byte [esp + 0x54]
mov byte [edi + 0xa], al
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x42da74
cmp dword [esp + 0x1c], 0xc
jb 0x42da70
test byte [esp + 0x1c], 1
je 0x42da83
test al, al
js 0x42da83
mov eax, dword [esp + 0x1c]
call fcn.00429b92
mov edx, eax
test edx, edx
jne 0x42da8d
mov ecx, 0x4fdcdc
jmp 0x42d9cc
mov esi, dword [ecx]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + 0x28]
call fcn.0042768e
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
mov eax, esi
call fcn.00429c80
mov eax, 0xefff
and word [esi + 8], ax
jmp 0x42e722
mov esi, dword [edi + 4]
mov eax, dword [edi + 0x10]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
movzx eax, byte [eax]
push dword [esp + 0x54]
push eax
mov eax, esi
call fcn.0042c31f
mov eax, dword [esp + 0x4c]
cmp byte [eax], 0x45
pop ecx
pop ecx
jne 0x42db51
movzx eax, word [esi + 8]
test al, 4
je 0x42db51
mov edx, dword [esi + 4]
cmp edx, 0x7fff
mov ecx, dword [esi]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], edx
jg 0x42db3c
jl 0x42db24
cmp ecx, 0xffffffff
ja 0x42db3c
cmp edx, 0xffff8000
jl 0x42db3c
jg 0x42db32
test ecx, ecx
jb 0x42db3c
and eax, 0xfffb
or eax, 0x20
jmp 0x42db4d
fild qword [esp + 0x148]
and eax, 0xfffb
or eax, 8
fstp qword [esi]
mov word [esi + 8], ax
inc dword [esp + 0x44]
mov eax, dword [esp + 0x44]
cmp byte [eax], 0
je case.0x42c52c.86
add esi, 0x28
jmp 0x42dadc
mov eax, dword [edi + 4]
mov esi, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
imul esi, esi, 0x28
mov ecx, dword [edi + 0x10]
lea esi, [esi + eax - 0x28]
mov dword [esp + 0x3c], esi
movzx esi, byte [ebx + 0x93]
mov dword [esp + 0x30], esi
mov esi, dword [edi + 0xc]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
cmp ecx, edx
je 0x42dc07
lea edi, [eax + 8]
mov eax, dword [esp + 0x20]
movzx eax, byte [eax]
push dword [esp + 0x54]
push eax
lea eax, [edi - 8]
call fcn.0042c31f
pop ecx
pop ecx
mov ecx, dword [esp + 0x20]
cmp byte [ecx], 0x45
jne 0x42dbf6
movzx eax, word [edi]
test al, 4
je 0x42dbf6
and eax, 0xfffb
or eax, 0x20
mov word [edi], ax
inc ecx
add edi, 0x28
cmp byte [ecx], 0
mov dword [esp + 0x20], ecx
jne 0x42dbc5
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x3c]
add edi, 0x1c
movzx ecx, word [edi - 0x14]
test cl, 1
je 0x42dc34
mov edx, 0x4000
and dx, cx
movzx ecx, dx
neg ecx
sbb ecx, ecx
and ecx, 0xa
inc dword [esp + 0x1c]
mov dword [edi], ecx
jmp 0x42de6b
test cl, 0x24
je 0x42ddc9
mov edx, dword [edi - 0x1c]
mov dword [esp + 0xf8], edx
mov edx, dword [edi - 0x18]
mov dword [esp + 0xfc], edx
mov edx, dword [esp + 0xf8]
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0xfc]
mov dword [esp + 0xbc], edx
test edx, edx
jg 0x42dc98
jl 0x42dc7d
cmp dword [esp + 0xb8], 0
jae 0x42dc98
mov edx, dword [esp + 0xb8]
not edx
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0xbc]
not edx
jmp 0x42dcad
mov edx, dword [esp + 0xb8]
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0xbc]
inc dword [esp + 0x1c]
mov dword [esp + 0xa4], edx
test edx, edx
ja 0x42dd68
jb 0x42dccc
cmp dword [esp + 0xa0], 0x7f
ja 0x42dd02
mov ecx, dword [esp + 0xb8]
and ecx, 1
cmp ecx, dword [esp + 0xb8]
jne 0x42dcfd
xor ecx, ecx
cmp ecx, dword [esp + 0xbc]
jne 0x42dcfd
cmp dword [esp + 0x30], 4
jl 0x42dcfd
mov ecx, dword [esp + 0xa0]
add ecx, 8
jmp 0x42dd61
xor ecx, ecx
inc ecx
jmp 0x42dd58
cmp dword [esp + 0xa4], 0
ja 0x42dd68
jb 0x42dd1b
cmp dword [esp + 0xa0], 0x7fff
ja 0x42dd1f
push 2
jmp 0x42dd57
cmp dword [esp + 0xa4], 0
ja 0x42dd68
jb 0x42dd38
cmp dword [esp + 0xa0], 0x7fffff
ja 0x42dd3c
push 3
jmp 0x42dd57
cmp dword [esp + 0xa4], 0
ja 0x42dd68
jb 0x42dd55
cmp dword [esp + 0xa0], 0x7fffffff
ja 0x42dd68
push 4
pop ecx
add dword [esp + 0x58], ecx
adc dword [esp + 0x5c], 0
mov dword [edi], ecx
jmp 0x42de6b
cmp dword [esp + 0xa4], 0x7fff
ja 0x42dd96
jb 0x42dd81
cmp dword [esp + 0xa0], 0xffffffff
ja 0x42dd96
add dword [esp + 0x58], 6
mov dword [edi], 5
adc dword [esp + 0x5c], 0
jmp 0x42de6b
add dword [esp + 0x58], 8
adc dword [esp + 0x5c], 0
test cl, 0x20
je 0x42ddbe
fild qword [esp + 0xf8]
and ecx, 0xffdf
or ecx, 8
mov word [edi - 0x14], cx
fstp qword [edi - 0x1c]
jmp 0x42dddc
mov dword [edi], 6
jmp 0x42de6b
test cl, 8
je 0x42dde7
inc dword [esp + 0x1c]
add dword [esp + 0x58], 8
adc dword [esp + 0x5c], 0
mov dword [edi], 7
jmp 0x42de6b
mov eax, dword [edi - 0x10]
mov edx, ecx
shr edx, 1
and edx, 1
lea edx, [edx + eax*2 + 0xc]
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], edx
test ecx, 0x4000
je 0x42de43
mov eax, dword [edi - 0x1c]
lea ecx, [edx + eax*2]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x58]
or ecx, dword [esp + 0x5c]
je 0x42de34
lea eax, [edi - 0x1c]
push eax
call fcn.00426ca4
pop ecx
test eax, eax
jne 0x4313f0
mov eax, dword [edi - 0x1c]
add dword [esp + 0x20], eax
jmp 0x42de43
cdq
add dword [esp + 0xb0], eax
adc dword [esp + 0xb4], edx
mov eax, dword [esp + 0x20]
add dword [esp + 0x58], eax
push 0
push dword [esp + 0x44]
adc dword [esp + 0x64], 0
call fcn.00414f7c
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
pop ecx
mov dword [edi], eax
mov eax, dword [esp + 0x28]
pop ecx
lea ecx, [edi - 0x1c]
cmp ecx, eax
je 0x42de7a
sub edi, 0x28
jmp 0x42dc0e
cmp dword [esp + 0x1c], 0x7e
jle 0x42dea6
mov eax, dword [esp + 0x1c]
cdq
push edx
push eax
call fcn.00414f7c
mov edi, eax
add dword [esp + 0x24], edi
mov eax, dword [esp + 0x24]
cdq
push edx
push eax
call fcn.00414f7c
add esp, 0x10
cmp edi, eax
jge 0x42deaa
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cdq
mov edi, eax
add edi, dword [esp + 0x58]
mov dword [esp + 0x120], eax
mov eax, edx
adc eax, dword [esp + 0x5c]
mov ecx, edi
add ecx, dword [esp + 0xb0]
mov dword [esp + 0x124], edx
adc eax, dword [esp + 0xb4]
mov dword [esp + 0x174], eax
mov eax, dword [esi + 0x18]
cdq
cmp dword [esp + 0x174], edx
mov dword [esp + 0x1f8], eax
jg 0x42df02
jl 0x42defa
cmp ecx, eax
ja 0x42df02
mov eax, dword [esi + 0x14]
mov dword [esi + 0x10], eax
jmp 0x42df50
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x6c]
cdq
cmp dword [esp + 0x174], edx
mov dword [esp + 0x1f0], eax
jg 0x430566
jl 0x42df28
cmp ecx, eax
ja 0x430566
cmp dword [esi + 0x18], edi
jge 0x42df3b
push 0
push edi
push esi
call fcn.00426b1a
add esp, 0xc
jmp 0x42df48
mov eax, dword [esi + 0x14]
and word [esi + 8], 0x2d
mov dword [esi + 0x10], eax
xor eax, eax
test eax, eax
jne 0x4313f0
mov eax, dword [esp + 0x1c]
push 0x10
pop ecx
mov word [esi + 8], cx
mov ecx, dword [esp + 0xb0]
mov edx, ecx
or edx, dword [esp + 0xb4]
mov dword [esi + 0xc], edi
je 0x42df7b
mov dword [esi], ecx
mov ecx, 0x4010
mov word [esi + 8], cx
mov esi, dword [esi + 0x10]
lea edi, [esi + eax]
cmp eax, 0x80
jae 0x42df8f
mov byte [esi], al
xor eax, eax
inc eax
jmp 0x42dfa4
push dword [esp + 0x124]
push dword [esp + 0x124]
call fcn.00414d35
pop ecx
pop ecx
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x40], eax
cmp eax, 0x80
jae 0x42dfca
mov byte [esi], al
xor eax, eax
inc eax
jmp 0x42dfd7
push 0
push dword [esp + 0x44]
call fcn.00414d35
pop ecx
pop ecx
mov edx, dword [esp + 0x40]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x44]
call fcn.00429ba7
add dword [esp + 0x44], 0x28
add edi, eax
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x3c]
jbe 0x42dfb1
jmp 0x42e722
mov ecx, dword [ebx + 0x60]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x28]
and dword [esp + 0x100], 0
and dword [esp + 0x104], 0
lea ecx, [esp + 0x100]
push ecx
call fcn.004254dc
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
mov eax, dword [esp + 0x10]
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [esp + 0x104]
mov dword [eax + 4], ecx
jmp 0x42e722
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
test eax, eax
jne 0x42e12b
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xb8], 0
jg 0x431063
mov eax, ecx
call fcn.0041426d
mov esi, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esi + 0x1bc]
add eax, dword [esi + 0x1b8]
push eax
push 0
call fcn.00456439
pop ecx
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
lea eax, [edi + 0x21]
push 0
push eax
mov ecx, esi
call fcn.004122f2
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x42d07f
inc edi
push edi
push dword [esp + 0x28]
lea eax, [esi + 0x20]
push eax
mov dword [esi], eax
call fcn.00497bcc
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp byte [eax + 0x4f], 0
je 0x42e0ef
mov byte [eax + 0x4f], 0
mov byte [eax + 0x57], 1
jmp 0x42e0f5
inc dword [eax + 0x1b8]
lea ecx, [eax + 0x1b0]
mov edx, dword [ecx]
mov dword [esi + 0x18], edx
mov dword [ecx], esi
mov ecx, dword [eax + 0x1c0]
mov dword [esi + 8], ecx
mov ecx, dword [eax + 0x1c4]
mov dword [esi + 0xc], ecx
mov ecx, dword [eax + 0x1c8]
mov dword [esi + 0x10], ecx
mov eax, dword [eax + 0x1cc]
mov dword [esi + 0x14], eax
jmp 0x42d07f
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x1b0]
and dword [esp + 0x40], 0
mov dword [esp + 0x3c], eax
test eax, eax
je 0x43106d
mov edi, eax
mov eax, dword [esp + 0x24]
mov ecx, dword [edi]
call fcn.0041444b
test eax, eax
je 0x42e166
mov edi, dword [edi + 0x18]
inc dword [esp + 0x40]
mov dword [esp + 0x3c], edi
test edi, edi
jne 0x42e148
xor ecx, ecx
cmp edi, ecx
je 0x43106d
xor eax, eax
inc eax
cmp dword [esi + 0xb8], ecx
jle 0x42e185
cmp dword [esp + 0x2c], eax
je 0x431083
cmp dword [edi + 0x18], ecx
jne 0x42e1d5
cmp byte [esi + 0x57], 0
je 0x42e1d5
mov dword [esp + 0x24], eax
cmp dword [esp + 0x2c], eax
jne 0x42e1d9
push eax
mov eax, ebx
call fcn.00429596
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x430942
mov edi, ebx
mov byte [esi + 0x4f], 1
call fcn.004295f6
push 5
pop ecx
cmp eax, ecx
je 0x431210
mov byte [esi + 0x57], 0
mov eax, dword [ebx + 0x28]
mov dword [esp + 0xc], eax
jmp 0x42e2b7
mov dword [esp + 0x24], ecx
mov edx, dword [esi + 0x1b8]
sub edx, dword [esp + 0x40]
dec edx
cmp dword [esp + 0x2c], 2
mov dword [esp + 0x40], edx
jne 0x42e24f
mov edi, dword [esi + 0x18]
and edi, eax
cmp dword [esi + 0x14], ecx
mov dword [esp + 0x4c], ecx
jle 0x42e251
xor eax, eax
test edi, edi
sete al
and dword [esp + 0x20], 0
mov dword [esp + 0x30], eax
push dword [esp + 0x30]
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x24]
push 0x204
push dword [ecx + eax + 4]
call fcn.0042113c
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x20], 0x10
cmp ecx, dword [eax + 0x14]
mov esi, eax
jl 0x42e20d
jmp 0x42e251
xor edi, edi
and dword [esp + 0x4c], 0
cmp dword [esi + 0x14], 0
jle 0x42e29f
and dword [esp + 0x20], 0
push dword [esp + 0x40]
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x30]
mov eax, dword [ecx + eax + 4]
call fcn.00421260
pop ecx
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x20], 0x10
cmp ecx, dword [eax + 0x14]
mov esi, eax
jl 0x42e261
test edi, edi
je 0x42e2b7
xor edx, edx
mov eax, esi
call fcn.0042ab22
mov eax, esi
call fcn.0043de6a
or dword [esi + 0x18], 1
mov edi, dword [esp + 0x3c]
jmp 0x42e2db
mov eax, dword [esi + 0x1b0]
mov ecx, dword [eax + 0x18]
push eax
push esi
mov dword [esi + 0x1b0], ecx
call fcn.004120c1
dec dword [esi + 0x1b8]
pop ecx
pop ecx
cmp dword [esi + 0x1b0], edi
jne 0x42e2bd
cmp dword [esp + 0x2c], 1
jne 0x42e313
mov eax, dword [edi + 0x18]
push edi
push esi
mov dword [esi + 0x1b0], eax
call fcn.004120c1
cmp dword [esp + 0x2c], 0
pop ecx
pop ecx
jne 0x42d07f
mov eax, dword [esp + 0x14]
dec dword [eax + 0x1b8]
jmp 0x42e349
cmp dword [esp + 0x24], 0
mov eax, dword [edi + 8]
mov dword [esi + 0x1c0], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0x1c4], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x1c8], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1cc], eax
je 0x42e349
cmp dword [esp + 0x2c], 2
jne 0x42d07f
push dword [esp + 0x40]
mov esi, dword [esp + 0x18]
push dword [esp + 0x30]
call fcn.00456439
pop ecx
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
jmp 0x42d07f
mov ecx, dword [edi + 8]
and dword [esp + 0x20], 0
mov esi, dword [esp + 0x14]
test ecx, ecx
je 0x42e38f
mov eax, dword [esi + 0x20]
and eax, 0x100000
xor edx, edx
or eax, edx
jne 0x43131d
mov eax, dword [edi + 4]
mov edx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov dword [esp + 0x30], eax
test eax, eax
je 0x42e45d
lea edx, [esp + 0x20]
push edx
push ecx
mov ebx, eax
call fcn.00420859
pop ecx
pop ecx
xor ecx, ecx
mov dword [esp + 0xc], eax
cmp eax, ecx
jne 0x43132a
cmp dword [edi + 8], ecx
je 0x42e456
mov ebx, dword [ebp + 8]
test byte [ebx + 0x98], 0x80
je 0x42e456
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x4f], cl
je 0x42e3ec
cmp dword [esi + 0xb4], 1
jle 0x42e456
cmp dword [ebx + 0x30], ecx
jne 0x42e406
mov edx, dword [esi + 0x1b8]
lea eax, [esi + 0x1bc]
inc dword [eax]
mov eax, dword [eax]
add edx, eax
mov dword [ebx + 0x30], edx
mov eax, dword [ebx + 0x30]
dec eax
push eax
push ecx
call fcn.00456439
pop ecx
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x42e430
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 4]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ecx]
call fcn.0041c5e7
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x1c0]
mov dword [ebx + 0x48], eax
mov eax, dword [esi + 0x1c4]
mov dword [ebx + 0x4c], eax
mov eax, dword [esi + 0x1c8]
mov dword [ebx + 0x50], eax
mov eax, dword [esi + 0x1cc]
mov dword [ebx + 0x54], eax
jmp 0x42e45d
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x14]
cmp word [edi + 2], 0
je 0x42d07f
mov eax, dword [esp + 0x20]
cmp eax, dword [edi + 0xc]
jne 0x42e48a
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 0x10]
je 0x42d07f
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x42e49a
push eax
push esi
call fcn.004120c1
pop ecx
pop ecx
push 0x4bcfa4
push esi
call fcn.00412459
mov dword [ebx + 0x7c], eax
mov edi, dword [edi + 4]
pop ecx
mov eax, edi
pop ecx
mov ecx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x20]
cmp dword [eax], ecx
je 0x42e4cc
mov esi, dword [esp + 0x14]
mov eax, edi
call fcn.0043de18
lea eax, [ebx + 0x98]
mov ecx, dword [eax]
and ecx, 0xfffffffd
or ecx, 1
mov dword [eax], ecx
mov dword [esp + 0xc], 0x11
jmp 0x42d07f
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x10]
mov edx, dword [edi + 0xc]
shl eax, 4
mov ecx, dword [eax + ecx + 4]
lea esi, [esp + 0x12c]
call fcn.0042547d
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, eax
mov eax, dword [esp + 0x12c]
jmp 0x42c69c
mov esi, dword [edi + 4]
mov eax, dword [esp + 0x14]
push dword [edi + 0xc]
mov ebx, dword [edi + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov eax, dword [esi + 4]
call fcn.004254a1
mov dword [esp + 0x10], eax
mov eax, dword [edi + 8]
pop ecx
cmp eax, 1
jne 0x42e55a
mov eax, dword [esi + 0xc]
mov ecx, dword [edi + 0xc]
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
or dword [eax + 0x18], 1
jmp 0x42e568
cmp eax, 2
jne 0x42e568
mov eax, dword [esi + 0xc]
mov cl, byte [edi + 0xc]
mov byte [eax + 0x4c], cl
cmp dword [edi + 4], 1
jne 0x42e583
mov eax, dword [esp + 0x14]
xor edx, edx
call fcn.0042ab22
mov eax, dword [ebp + 8]
and dword [eax + 0x98], 0xfffffffc
mov ebx, dword [ebp + 8]
jmp 0x42d07f
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
test esi, esi
je case.0x42c52c.97
mov eax, dword [esi + 0x34]
cmp eax, dword [edi + 8]
je 0x42e6a5
mov eax, dword [ebx + 0x98]
and al, 3
cmp al, 1
je 0x431354
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x48], eax
shl eax, 4
add eax, dword [ecx + 0x10]
xor esi, esi
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x68], ecx
cmp dl, 0x62
jne 0x42e604
movzx ecx, word [edi + 2]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
and ecx, 8
or ecx, 4
mov dword [esp + 0x3c], ecx
lea ecx, [ebx + 0x93]
cmp al, byte [ecx]
jae 0x42e609
mov byte [ecx], al
jmp 0x42e609
and dword [esp + 0x3c], 0
test byte [edi + 2], 0x10
je 0x42e629
mov esi, dword [esp + 0x20]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
call fcn.0042700a
mov eax, dword [esi]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x20], eax
mov al, byte [edi + 1]
cmp al, 0xf7
jne 0x42e63d
mov eax, dword [edi + 0x10]
movzx esi, word [eax + 8]
mov dword [esp + 0x24], eax
jmp 0x42e644
cmp al, 0xfd
jne 0x42e644
mov esi, dword [edi + 0x10]
mov eax, dword [edi + 4]
push 0
push dword [esp + 0x4c]
push esi
push ebx
call fcn.0042c171
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4313f0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ebx, dword [esi + 0x28]
or dword [esi + 8], 4
push edi
push dword [esp + 0x40]
mov byte [esi + 2], 1
push eax
push dword [esp + 0x74]
mov dword [esi + 0x34], eax
call fcn.00421389
mov ebx, dword [ebp + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x2c], edi
mov edi, dword [esp + 0x20]
add esp, 0x10
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
mov al, byte [edi + 2]
mov ecx, dword [esi + 0x28]
and al, 3
mov byte [ecx + 3], al
jmp 0x42d07f
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
movsx eax, word [esi + 0x38]
push 0
push 0xffffffffffffffff
push eax
mov eax, dword [edi + 4]
push ebx
call fcn.0042c171
add esp, 0x10
test eax, eax
je 0x4313f0
or dword [eax + 8], 1
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0x28]
mov byte [eax + 2], 1
mov edx, dword [esi + 0x2c]
mov dword [eax + 0x2c], edx
mov dl, byte [esi + 4]
push dword [eax + 0x2c]
mov byte [eax + 4], dl
mov edx, dword [esi + 0x34]
mov dword [eax + 0x34], edx
mov edx, dword [esi + 8]
xor edx, ecx
and edx, 4
push 4
push dword [eax + 0x34]
xor edx, ecx
mov dword [eax + 8], edx
push dword [esi + 0xc]
call fcn.00421389
add esp, 0x10
mov dword [esp + 0xc], eax
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x10]
add edi, 0x14
jmp 0x42c511
mov ecx, dword [ebx + 0x60]
mov eax, dword [edi + 4]
mov esi, dword [ecx + eax*4]
xor ecx, ecx
cmp esi, ecx
je 0x42e765
mov edi, dword [esi + 0xc]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x1c], ecx
cmp edi, ecx
je 0x42e8f4
push ecx
push dword [esi + 0x34]
call fcn.004252c0
pop ecx
pop ecx
mov dword [esp + 0xc], eax
jmp 0x42e8f4
push ecx
push 0xffffffffffffffff
push dword [edi + 8]
push ebx
call fcn.0042c171
mov edi, eax
add esp, 0x10
mov dword [esp + 0x20], edi
test edi, edi
je 0x4313f0
or dword [edi + 8], 1
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
push 0x41e
or eax, 5
push eax
mov eax, dword [esp + 0x1c]
lea esi, [edi + 0xc]
push esi
push 0
push dword [eax]
call fcn.004200b8
add esp, 0x14
mov dword [esp + 0xc], eax
test eax, eax
jne 0x42e8d6
mov ebx, dword [esi]
push eax
push 1
call fcn.00420859
pop ecx
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x42e8d3
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x30], ecx
mov dword [edi + 0x2c], ecx
test ecx, ecx
je 0x42e822
movzx eax, word [eax + 2]
mov ecx, dword [esi]
or eax, 2
push eax
lea ebx, [edi + 0x34]
push ebx
push ecx
call fcn.00424f67
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x42e819
push dword [esp + 0x30]
push 4
push dword [ebx]
mov ebx, dword [edi + 0x28]
push dword [esi]
call fcn.00421389
add esp, 0x10
mov dword [esp + 0xc], eax
mov byte [edi + 4], 0
jmp 0x42e8d3
mov esi, dword [esi]
mov ebx, dword [edi + 0x28]
xor eax, eax
inc eax
mov dword [edi + 0x34], eax
mov dword [esp + 0x48], esi
mov esi, dword [esi + 4]
cmp dword [esi + 0x40], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], esi
jne 0x42e86b
mov eax, esi
mov esi, dword [eax + 0x20]
call fcn.0041857a
mov ecx, eax
mov eax, dword [esp + 0x24]
mov dword [eax + 0x40], ecx
test ecx, ecx
je 0x42e86b
xor eax, eax
mov edi, ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
add dword [eax + 0x40], 4
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
xor esi, esi
cmp dword [ecx + 0x40], esi
jne 0x42e87b
push 7
pop eax
jmp 0x42e8cb
cmp dword [ecx + 0x2c], esi
jne 0x42e884
xor edx, edx
jmp 0x42e888
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x40], edx
mov byte [ebx + 0x44], 0xff
mov dword [ebx + 0x70], esi
mov dword [ebx + 8], eax
mov dword [ebx + 0x14], ecx
mov byte [ebx + 1], 1
mov byte [ebx + 2], 0
mov eax, dword [ecx + 8]
jmp 0x42e8b9
cmp dword [eax + 0x40], edx
jne 0x42e8b6
or byte [eax + 1], 0x20
or byte [ebx + 1], 0x20
mov eax, dword [eax + 0x18]
cmp eax, esi
jne 0x42e8a9
mov eax, dword [ecx + 8]
mov dword [ebx + 0x18], eax
mov dword [ecx + 8], ebx
mov byte [ebx], 1
xor eax, eax
mov dword [esp + 0xc], eax
mov byte [edi + 4], 1
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
xor eax, eax
cmp word [ecx + 2], 8
setne al
shl eax, 2
xor eax, dword [edi + 8]
and eax, 4
xor dword [edi + 8], eax
cmp dword [esp + 0xc], 0
jne 0x4308a0
mov byte [esi + 2], 1
jmp 0x42e722
mov eax, dword [edi + 4]
push 1
push 0xffffffffffffffff
push dword [edi + 8]
push ebx
call fcn.0042c171
add esp, 0x10
test eax, eax
je 0x4313f0
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x2c], edx
push dword [ecx + 0xc]
push dword [esp + 0x18]
call fcn.004323b5
pop ecx
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jmp 0x42d084
mov ecx, dword [ebx + 0x60]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov esi, ecx
add esi, 1
mov dword [esp + 0x1d4], edx
adc edx, 0
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edx
mov eax, ecx
mov ecx, dword [esp + 0x1d4]
or eax, ecx
jmp 0x42d5e9
mov eax, dword [edi + 4]
push 3
push 0xffffffffffffffff
push dword [edi + 0xc]
push ebx
call fcn.0042c171
add esp, 0x10
test eax, eax
je 0x4313f0
mov ecx, dword [esp + 0x10]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x20], ecx
mov byte [eax + 4], 1
mov dword [eax + 0x28], 0x4fdf98
jmp 0x42e722
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
push ebx
call fcn.00428de2
mov eax, dword [edi + 4]
pop ecx
mov ecx, dword [ebx + 0x60]
and dword [ecx + eax*4], 0
jmp case.0x42c52c.86
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov esi, dword [edx + ecx*4]
and dword [esp + 0x20], 0
and dword [esi + 0x1c], 0
cmp byte [esi + 4], 0
mov dword [esp + 0x28], eax
mov byte [esi + 2], 0
mov byte [esi + 3], 0
je 0x42eafe
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
movzx eax, word [eax + 8]
mov dword [esp + 0x30], eax
and al, 0x2e
cmp al, 2
jne 0x42ea22
mov eax, dword [esp + 0x2c]
push 0
call fcn.0042c2ab
pop ecx
mov ecx, dword [esp + 0x2c]
call fcn.00426ef0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xe8], eax
movzx eax, word [ecx + 8]
mov dword [esp + 0xec], edx
mov dx, word [esp + 0x30]
mov word [ecx + 8], dx
test al, 0x24
jne 0x42eabb
test al, 8
jne 0x42ea84
test al, 1
jne 0x42ebe2
cmp dword [esp + 0x28], 0x18
jge 0x42ebe2
mov ecx, dword [esi + 0x28]
lea eax, [esp + 0x6c]
call fcn.00421a88
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
xor edi, edi
jmp 0x42ec35
fild qword [esp + 0xe8]
mov ecx, dword [esp + 0x2c]
fcom qword [ecx]
fnstsw ax
test ah, 0x41
jne 0x42eaa7
test byte [esp + 0x28], 1
fstp st(0)
je 0x42eabb
dec dword [esp + 0x28]
jmp 0x42eabb
fcomp qword [ecx]
fnstsw ax
test ah, 5
jp 0x42eabb
test byte [esp + 0x28], 1
jne 0x42eabb
inc dword [esp + 0x28]
mov edi, dword [esp + 0xe8]
lea eax, [esp + 0x6c]
push eax
push 0
push dword [esp + 0xf4]
push edi
push 0
push dword [esi + 0x28]
call fcn.00421ad2
mov ecx, dword [esp + 0x104]
add esp, 0x18
mov dword [esp + 0xc], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ecx
test eax, eax
jne 0x4308a0
xor edi, edi
jmp 0x42eb92
mov eax, dword [esi + 0x28]
test byte [eax + 3], 2
je 0x42eb0f
mov dword [esp + 0x20], 1
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x138], eax
mov ax, word [edi + 0x10]
mov word [esp + 0x140], ax
mov eax, dword [esp + 0x28]
and al, 1
neg al
sbb al, al
and al, 0xfe
inc al
mov byte [esp + 0x142], al
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov byte [esp + 0x146], 0
mov dword [esp + 0x13c], eax
lea eax, [esp + 0x6c]
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [esp + 0x148]
push eax
push dword [esi + 0x28]
call fcn.00421ad2
add esp, 0x18
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
xor edi, edi
cmp dword [esp + 0x20], edi
je 0x42eb92
cmp byte [esp + 0x146], 0
je 0x42ec35
cmp dword [esp + 0x28], 0x18
jl 0x42ebea
cmp dword [esp + 0x6c], edi
jl 0x42ebb1
jne 0x42eba8
cmp dword [esp + 0x28], 0x19
je 0x42ebb1
mov dword [esp + 0x6c], edi
jmp 0x42ec3b
push edi
push dword [esi + 0x28]
mov dword [esp + 0x74], edi
call fcn.00421fd8
pop ecx
pop ecx
mov dword [esp + 0xc], eax
cmp eax, edi
je 0x42ec3b
cmp eax, 0x65
jne 0x4308a0
and dword [esp + 0xc], 0
mov dword [esp + 0x6c], 1
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
jmp 0x42d40b
cmp dword [esp + 0x6c], edi
jg 0x42ec09
jne 0x42ebf9
cmp dword [esp + 0x28], 0x16
je 0x42ec09
mov eax, dword [esi + 0x28]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x6c], ecx
jmp 0x42ec35
push edi
push dword [esi + 0x28]
mov dword [esp + 0x74], edi
call fcn.004220e4
pop ecx
pop ecx
mov dword [esp + 0xc], eax
cmp eax, edi
je 0x42ec3b
cmp eax, 0x65
jne 0x4308a0
mov dword [esp + 0xc], edi
mov dword [esp + 0x6c], 1
cmp dword [esp + 0x6c], edi
jne 0x42ebde
cmp dword [esp + 0x20], edi
je 0x42e722
add dword [esp + 0x10], 0x14
jmp 0x42e722
mov ecx, dword [ebx + 0x60]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [edi + 8]
shl ecx, 3
xor ecx, dword [eax + 8]
and ecx, 8
xor dword [eax + 8], ecx
jmp case.0x42c52c.86
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
test byte [eax + 8], 8
jne case.0x42c52c.86
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
cmp dword [edi + 0x10], 0
mov dword [esp + 0x3c], esi
mov dword [esp + 0x2c], eax
jle 0x42eccf
mov ecx, dword [esi + 0x2c]
and dword [esp + 0x20], 0
mov dword [esp + 0x1d8], ecx
mov cx, word [edi + 0x10]
mov dword [esp + 0x1dc], eax
lea eax, [esp + 0x1d8]
mov word [esp + 0x1e0], cx
mov dword [esp + 0x24], eax
jmp 0x42ed31
mov ecx, 0x4000
test word [eax + 8], cx
je 0x42ece3
push eax
call fcn.00426ca4
pop ecx
jmp 0x42ece5
xor eax, eax
test eax, eax
jne 0x4313f0
mov esi, dword [esi + 0x2c]
call fcn.00429dc8
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
test eax, eax
je 0x4313f0
mov eax, dword [esp + 0x2c]
push dword [eax + 0x10]
mov ebx, dword [esp + 0x28]
push dword [eax + 0xc]
mov eax, dword [esp + 0x44]
push dword [eax + 0x2c]
call fcn.00429dfa
mov edi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
add esp, 0xc
and dword [esp + 0x3c], 0
mov byte [eax + 0xa], 0
cmp byte [edi], 0x1b
jne 0x42ed68
xor ecx, ecx
xor edi, edi
cmp cx, word [eax + 8]
jae 0x42ed68
mov ecx, dword [eax + 4]
add ecx, 8
xor edx, edx
inc edx
test byte [ecx], dl
jne 0x42ed64
movzx edx, word [eax + 8]
inc edi
add ecx, 0x28
cmp edi, edx
jl 0x42ed4f
jmp 0x42ed68
mov dword [esp + 0x3c], edx
lea eax, [esp + 0x134]
push eax
xor edi, edi
push edi
push edi
push edi
push dword [esp + 0x34]
push dword [esi + 0x28]
call fcn.00421ad2
add esp, 0x18
mov dword [esp + 0xc], eax
cmp dword [esp + 0x20], edi
je 0x42ed9d
push dword [esp + 0x20]
push dword [esp + 0x18]
call fcn.004120c1
pop ecx
pop ecx
cmp dword [esp + 0xc], edi
jne 0x4308a0
mov ecx, dword [esp + 0x134]
xor eax, eax
test ecx, ecx
mov dword [esi + 0x20], ecx
sete al
and dword [esi + 0x1c], 0
mov cl, 1
sub cl, al
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x10]
mov byte [esi + 3], 0
cmp byte [ecx], 0x1d
jne 0x42eddd
test eax, eax
jne 0x42ebde
jmp 0x42e722
cmp dword [esp + 0x3c], 0
jne 0x42ebde
test eax, eax
je 0x42ebde
jmp 0x42e722
mov esi, dword [edi + 0xc]
mov ecx, dword [esp + 0x18]
imul esi, esi, 0x28
add esi, ecx
test byte [esi + 8], 0x24
jne 0x42ee54
push 0xa
pop ecx
push dword [esp + 0x54]
lea edi, [esp + 0x294]
push 0x43
lea eax, [esp + 0x298]
rep movsd dword es:[edi], dword [esi]
call fcn.0042c31f
test byte [esp + 0x2a0], 4
mov edi, dword [esp + 0x18]
pop ecx
pop ecx
je 0x42ebe2
mov eax, dword [esp + 0x290]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x294]
jmp 0x42ee68
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [esp + 0xc8], edx
mov ecx, dword [ebx + 0x60]
mov dword [esp + 0xcc], eax
mov eax, dword [edi + 4]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi + 0x28]
xor ecx, ecx
lea edx, [esp + 0x28]
push edx
push ecx
push dword [esp + 0xd4]
push dword [esp + 0xd4]
mov dword [esp + 0x38], ecx
push ecx
push eax
call fcn.00421ad2
and dword [esi + 0x1c], 0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xe0]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0xe4]
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x40]
add esp, 0x18
mov byte [esi + 2], 0
mov byte [esi + 3], 0
mov dword [esi + 0x20], eax
test eax, eax
je 0x42d07f
cmp dword [edi + 8], 0
jne 0x42ebe2
push 0x159cf
call fcn.004655e7
jmp 0x42f722
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov edx, dword [ebx + 0x60]
mov ecx, dword [edi + 4]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 0x10]
mov dword [eax], edx
mov ecx, dword [ecx + 0x14]
mov dword [eax + 4], ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
jmp case.0x42c52c.86
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x24], eax
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [ebx + 0x60]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 4]
mov esi, dword [ecx + eax*4]
test byte [esi + 8], 2
mov dword [esp + 0x20], esi
jne 0x42efb3
mov ecx, dword [esi + 0x28]
lea eax, [esp + 0x24]
call fcn.00421a88
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
cmp dword [esp + 0x24], eax
je 0x42ef78
and dword [esp + 0x7c], eax
mov dword [esp + 0x78], 1
jmp 0x42efaf
mov edi, dword [esi + 0x28]
mov ecx, edi
call fcn.004213ff
mov eax, dword [edi + 0x20]
mov edi, dword [edi + 0x24]
cmp edi, 0x7fffffff
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edi
jl 0x42efa5
jg 0x42ef9f
cmp eax, 0xffffffff
jb 0x42efa5
or dword [esi + 8], 2
jmp 0x42efaf
add dword [esp + 0x78], 1
adc dword [esp + 0x7c], 0
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x42f027
mov ecx, dword [ebx + 0xc8]
test ecx, ecx
jne 0x42f0aa
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov esi, eax
call fcn.0042700a
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x42efec
cmp ecx, 0x7fffffff
je 0x42f09b
mov edx, dword [esp + 0x20]
test byte [edx + 8], 2
jne 0x42f09b
add eax, 1
adc ecx, 0
cmp dword [esp + 0x7c], ecx
jg 0x42f016
jl 0x42f00e
cmp dword [esp + 0x78], eax
jae 0x42f016
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x78]
mov dword [esi], eax
mov eax, dword [esp + 0x7c]
mov dword [esi + 4], eax
mov esi, dword [esp + 0x20]
test byte [esi + 8], 2
je 0x42f0c0
and dword [esp + 0x20], 0
xor edi, edi
lea eax, [esp + 0x78]
push eax
push 8
call fcn.00413b93
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
and eax, 0x3fffffff
add ecx, 1
lea edx, [esp + 0x2c]
push edx
push edi
adc eax, edi
push eax
push ecx
push edi
push dword [esi + 0x28]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
call fcn.00421ad2
add esp, 0x20
mov dword [esp + 0xc], eax
cmp eax, edi
jne 0x4308a0
cmp dword [esp + 0x24], edi
jne 0x42f0bc
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x64
jl 0x42f038
mov dword [esp + 0xc], 0xd
jmp 0x4308a0
mov ecx, edx
mov edx, dword [ecx + 4]
test edx, edx
jne 0x42f0a8
imul eax, eax, 0x28
add eax, dword [ecx + 0x10]
jmp 0x42efcf
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x1c]
and dword [esi + 0x1c], 0
mov byte [esi + 3], 0
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
jmp 0x42c6ba
mov ecx, dword [edi + 4]
mov esi, dword [ebx + 0x60]
mov esi, dword [esi + ecx*4]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
imul eax, eax, 0x28
mov edx, dword [esp + 0x18]
imul ecx, ecx, 0x28
add eax, edx
cmp byte [edi + 1], 0xfa
mov edx, dword [ecx + edx]
mov dword [esp + 0x1b0], edx
mov edx, dword [esp + 0x18]
mov ecx, dword [ecx + edx + 4]
mov dword [esp + 0x1b4], ecx
mov ecx, dword [esp + 0x14]
jne 0x42f140
cmp dword [ecx + 0xe8], 0
je 0x42f140
movsx edx, byte [esi + 1]
mov ecx, dword [ecx + 0x10]
shl edx, 4
mov ecx, dword [edx + ecx]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
jmp 0x42f14a
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
test byte [edi + 2], 1
je 0x42f153
inc dword [ebx + 0x2c]
test byte [edi + 2], 0x20
je 0x42f16d
mov edx, dword [esp + 0x1b0]
mov dword [ecx + 0x28], edx
mov edx, dword [esp + 0x1b4]
mov dword [ecx + 0x2c], edx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x1b8], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x1c4], ecx
movzx ecx, word [edi + 2]
test cl, 0x10
je 0x42f18f
mov edx, dword [esi + 0x20]
jmp 0x42f191
xor edx, edx
mov edi, 0x4000
test word [eax + 8], di
je 0x42f1a7
mov eax, dword [eax]
mov dword [esp + 0x1c8], eax
jmp 0x42f1af
and dword [esp + 0x1c8], 0
and dword [esp + 0x1a8], 0
mov eax, dword [esi + 0x28]
push edx
and ecx, 0xa
push ecx
lea ebx, [esp + 0x1b0]
call fcn.004248fd
and dword [esi + 0x1c], 0
pop ecx
pop ecx
mov dword [esp + 0xc], eax
mov byte [esi + 3], 0
test eax, eax
jne 0x43089d
mov eax, dword [esp + 0x20]
test eax, eax
je 0x42e71f
push dword [esp + 0x1b4]
push dword [esp + 0x1b4]
push dword [eax]
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 2]
push dword [esp + 0x30]
and al, 4
movzx eax, al
neg eax
sbb eax, eax
and eax, 5
add eax, 0x12
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0xe4]
call dword [eax + 0xe8]
add esp, 0x18
jmp 0x42e71f
cmp byte [edi + 1], 0xfa
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 0x60]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 4]
mov esi, dword [ecx + eax*4]
jne 0x42f299
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xe8], 0
je 0x42f299
movsx eax, byte [esi + 1]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x10]
shl eax, 4
test byte [edi + 2], 2
mov eax, dword [eax + ecx]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x20], eax
je 0x42f2a3
cmp byte [esi + 4], 0
je 0x42f2a3
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x30], ecx
call fcn.004213ff
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x20]
mov dword [esi + 0x40], ecx
mov eax, dword [eax + 0x24]
mov dword [esi + 0x44], eax
jmp 0x42f2a3
and dword [esp + 0x24], 0
and dword [esp + 0x20], 0
mov al, byte [edi + 2]
mov ecx, dword [esi + 0x28]
call fcn.00424c74
and dword [esi + 0x1c], 0
and dword [esi + 0x20], 0
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
test byte [esp + 0x48], 1
je 0x42e722
inc dword [ebx + 0x2c]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xe8]
test eax, eax
je 0x42e722
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x24], 0x20
jne 0x42e722
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [ecx]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x30]
push 9
push dword [ecx + 0xe4]
call eax
add esp, 0x18
jmp 0x42e722
mov eax, dword [ebx + 0x2c]
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x68], eax
mov dword [ecx + 0x64], eax
and dword [ebx + 0x2c], 0
jmp case.0x42c52c.86
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
mov ecx, dword [edi + 0xc]
mov edi, dword [edi + 0x10]
imul ecx, ecx, 0x28
add ecx, dword [esp + 0x18]
and dword [esp + 0x88], 0
lea edx, [esp + 0x88]
push edx
push edi
push ecx
call fcn.0043358a
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
cmp dword [esp + 0x88], eax
jmp 0x42edd2
mov esi, dword [edi + 8]
mov eax, dword [edi + 4]
imul esi, esi, 0x28
mov ecx, dword [ebx + 0x60]
add esi, dword [esp + 0x18]
mov eax, dword [ecx + eax*4]
call fcn.00433521
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
and dword [eax + 0x1c], 0
jmp 0x42e722
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [ebx + 0x60]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov edi, dword [eax + 0x28]
mov ecx, edi
call fcn.004213ff
mov edx, dword [edi + 0x2c]
mov eax, dword [esp + 0x14]
cmp edx, dword [eax + 0x6c]
ja 0x430566
mov eax, dword [esp + 0x1c]
xor esi, esi
mov ecx, edi
call fcn.0042768e
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], esi
jne 0x42e722
mov ecx, dword [esp + 0x1c]
mov eax, 0x1000
test word [ecx + 8], ax
je 0x42e722
push ecx
call fcn.00426c4f
pop ecx
test eax, eax
jne 0x4313f0
jmp 0x42e722
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 2], 0
mov dword [esp + 0x1c], eax
je 0x42f44b
xor ecx, ecx
inc ecx
jmp 0x42c840
cmp byte [esi + 3], 0
je 0x42f463
mov eax, dword [esi + 0x40]
mov dword [esp + 0xe0], eax
mov eax, dword [esi + 0x44]
jmp 0x42f4eb
cmp byte [esi], 2
jne 0x42f499
mov eax, dword [esi + 0x28]
mov esi, dword [eax]
mov ecx, dword [esi]
lea edx, [esp + 0xe0]
push edx
push eax
call dword [ecx + 0x30]
pop ecx
pop ecx
mov edi, ebx
mov dword [esp + 0xc], eax
call fcn.0042ab88
cmp dword [esp + 0xc], 0
jne 0x4308a0
mov edi, dword [esp + 0x10]
jmp 0x42f4f2
mov ecx, dword [esi + 0x28]
cmp byte [ecx], 0
je 0x42f4b2
mov edi, esi
call fcn.00429b1e
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
jmp 0x42f4b7
and dword [esp + 0xc], 0
cmp dword [esp + 0xc], 0
jne 0x4308a0
cmp byte [esi + 2], 0
je 0x42f4d0
xor ecx, ecx
inc ecx
jmp 0x42c8cd
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.004213ff
mov eax, dword [esi + 0x20]
mov edi, dword [esp + 0x10]
mov dword [esp + 0xe0], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0xe0]
mov eax, dword [esp + 0x1c]
mov dword [eax], ecx
mov ecx, dword [esp + 0xe4]
jmp 0x42c6ba
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
and dword [eax + 0x1c], 0
cmp byte [eax], 0
mov byte [eax + 2], 1
jne case.0x42c52c.86
mov esi, dword [eax + 0x28]
push dword [esi + 0x10]
call fcn.00412074
and dword [esi + 0x10], 0
pop ecx
mov byte [esi], 1
jmp case.0x42c52c.86
mov ecx, dword [ebx + 0x60]
mov eax, dword [edi + 4]
mov esi, dword [ecx + eax*4]
and dword [esp + 0x68], 0
mov ecx, dword [esi + 0x28]
cmp dl, 0x82
jne 0x42f560
or dword [esi + 0x20], 0xffffffff
cmp byte [ecx], 0
je case.0x42c52c.86
lea eax, [esp + 0x68]
call fcn.00421a88
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x1c], ecx
cmp dword [esp + 0xc], ecx
jne 0x4308a0
mov edx, dword [esp + 0x10]
cmp dword [edx + 8], ecx
jle 0x42e722
cmp eax, ecx
jmp 0x42edd2
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0x28]
lea edi, [esp + 0xf4]
mov eax, esi
call fcn.00421a64
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
cmp dword [esp + 0xf4], eax
jne 0x42ebde
call fcn.00421eaf
test edx, edx
jl 0x42e722
jg 0x42f5e5
test eax, eax
jb 0x42e722
push edx
push eax
call fcn.004152ce
pop ecx
cwde
pop ecx
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0xc]
jge 0x42e722
mov dword [esp + 0xf4], 1
jmp 0x42ebde
inc dword [ebx + 0xac]
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
lea edi, [esp + 0x2c]
cmp byte [esi], al
jne 0x42f633
mov ecx, esi
call fcn.00433453
jmp 0x42f643
mov eax, dword [esi + 0x28]
call fcn.00421a64
and dword [esi + 0x1c], 0
mov byte [esi + 3], 0
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
mov byte [esi + 2], al
jmp 0x42d5c7
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
push dword [esp + 0x14]
mov eax, esi
call fcn.0043349f
jmp 0x42f688
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
push dword [edi + 0xc]
mov esi, dword [ecx + eax*4]
push dword [esi + 0x28]
call dword [edi + 0x10]
pop ecx
mov dword [esp + 0x10], eax
xor eax, eax
pop ecx
mov dword [esi + 0x1c], eax
cmp dword [esp + 0xc], eax
jne 0x42f6ad
mov byte [esi + 2], al
movzx eax, word [edi + 2]
lea eax, [ebx + eax*4 + 0xa4]
inc dword [eax]
jmp case.0x42c52c.11
cmp dword [esp + 0xc], 0x65
jne 0x4308a0
mov dword [esp + 0xc], eax
mov byte [esi + 2], 1
jmp 0x430c0d
mov esi, dword [edi + 8]
mov eax, dword [edi + 4]
imul esi, esi, 0x28
mov ecx, dword [ebx + 0x60]
mov ecx, dword [ecx + eax*4]
add esi, dword [esp + 0x18]
test byte [edi + 2], 1
mov dword [esp + 0x68], ecx
je 0x42f6e5
inc dword [ebx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x42f701
push esi
call fcn.00426ca4
pop ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], eax
jmp 0x42f706
and dword [esp + 0xc], 0
cmp dword [esp + 0xc], 0
jne 0x4308a0
mov edi, dword [esp + 0x10]
cmp byte [edi], 0x83
jne 0x42f72b
push esi
mov eax, ecx
call fcn.00432c9b
mov dword [esp + 0x10], eax
jmp 0x42d07e
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x240], eax
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x254], eax
mov ax, word [edi + 0x10]
mov word [esp + 0x258], ax
movzx eax, word [edi + 2]
test al, 0x10
je 0x42f771
mov edx, dword [ecx + 0x20]
jmp 0x42f773
xor edx, edx
and eax, 0xa
push edx
push eax
mov eax, dword [ecx + 0x28]
lea ebx, [esp + 0x248]
call fcn.004248fd
mov ebx, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
and dword [eax + 0x1c], 0
pop ecx
jmp 0x42d07e
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x198], ecx
mov cx, word [edi + 0xc]
mov word [esp + 0x1a0], cx
mov ecx, dword [edi + 8]
imul ecx, ecx, 0x28
add ecx, dword [esp + 0x18]
xor edi, edi
mov dword [esp + 0x19c], ecx
lea ecx, [esp + 0x11c]
push ecx
push edi
push edi
push edi
lea ecx, [esp + 0x1a8]
push ecx
push eax
mov dword [esp + 0x48], eax
mov byte [esp + 0x1ba], 0
call fcn.00421ad2
add esp, 0x18
mov dword [esp + 0xc], eax
cmp eax, edi
jne 0x4308a0
cmp dword [esp + 0x11c], edi
jne 0x42f825
mov ecx, dword [esp + 0x30]
mov al, 4
call fcn.00424c74
mov dword [esp + 0xc], eax
cmp eax, edi
jne 0x4308a0
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
jmp 0x42e722
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi + 0x28]
cmp byte [eax], 0
je 0x42f84c
call fcn.00429b1e
mov dword [esp + 0xc], eax
jmp 0x42f851
and dword [esp + 0xc], 0
xor esi, esi
cmp dword [esp + 0xc], esi
jne 0x4308a0
cmp byte [edi + 2], 0
jne 0x42f8ef
lea eax, [esp + 0xd8]
push eax
push dword [esp + 0x18]
mov eax, dword [edi + 0x28]
mov dword [esp + 0xe0], esi
mov dword [esp + 0xe4], esi
call fcn.0042a9d0
pop ecx
pop ecx
mov dword [esp + 0xc], eax
cmp eax, esi
jne 0x4308a0
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x86
jne 0x42f8d3
mov ecx, dword [eax + 0xc]
mov edx, dword [ebx + 0x60]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0xd8]
mov dword [ecx + 0x40], edx
mov edx, dword [esp + 0xdc]
mov byte [ecx + 2], 0
mov dword [ecx + 0x44], edx
mov byte [ecx + 3], 1
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x24], edi
jmp 0x42e722
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [esp + 0xd8]
mov dword [eax], ecx
mov ecx, dword [esp + 0xdc]
jmp 0x42e050
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
jmp 0x42d6c6
mov ecx, dword [ebx + 0x60]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x188], ecx
mov cx, word [edi + 0x10]
mov word [esp + 0x190], cx
cmp dl, 0x27
sbb cl, cl
and dword [esp + 0x4c], 0
mov byte [esp + 0x192], cl
mov ecx, dword [edi + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [esp + 0x18]
lea ebx, [esp + 0x4c]
mov dword [esp + 0x18c], ecx
lea ecx, [esp + 0x188]
push ecx
push dword [esp + 0x18]
call fcn.0042aaa3
test byte [edi], 1
pop ecx
pop ecx
mov dword [esp + 0xc], eax
je 0x42f969
neg dword [esp + 0x4c]
jmp 0x42f96d
inc dword [esp + 0x4c]
mov ebx, dword [ebp + 8]
test eax, eax
jne 0x4308a0
cmp dword [esp + 0x4c], eax
mov edi, dword [esp + 0x10]
jg 0x42ebe2
jmp case.0x42c52c.86
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov esi, eax
xor eax, eax
inc eax
mov word [esi + 8], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc0]
inc ecx
cmp dword [eax + 0xb4], ecx
jg 0x431361
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x10]
and dword [esp + 0x64], 0
mov edi, edx
mov dword [esp + 0x30], edx
lea edx, [esp + 0x64]
push edx
shl edi, 4
mov eax, dword [edi + eax + 4]
push ecx
push eax
call fcn.004252f9
add esp, 0xc
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
push 4
pop eax
mov word [esi + 8], ax
mov eax, dword [esp + 0x64]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jne 0x4308a0
cmp dword [esp + 0x64], 0
je 0x42e722
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
add eax, edi
mov edx, dword [eax + 0xc]
mov edx, dword [edx + 0x10]
jmp 0x42fa32
mov esi, dword [edx + 8]
mov edi, dword [esi + 0x1c]
cmp edi, dword [esp + 0x64]
jne 0x42fa30
mov dword [esi + 0x1c], ecx
mov edx, dword [edx]
test edx, edx
jne 0x42fa21
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x20]
jmp 0x42fa4f
mov edx, dword [eax + 8]
mov esi, dword [edx + 0x2c]
cmp esi, dword [esp + 0x64]
jne 0x42fa4d
mov dword [edx + 0x2c], ecx
mov eax, dword [eax]
test eax, eax
jne 0x42fa3e
mov al, byte [esp + 0x30]
inc al
mov byte [esp + 0x63], al
jmp 0x42e722
mov eax, dword [edi + 0xc]
xor esi, esi
neg eax
sbb eax, eax
lea ecx, [esp + 0x48]
and eax, ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [edi + 8]
push dword [edi + 4]
shl eax, 4
mov dword [esp + 0x50], esi
mov edi, dword [eax + ecx + 4]
call fcn.004252c0
pop ecx
pop ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc], eax
cmp dword [ecx + 0xc], esi
je 0x42fabb
mov eax, dword [esp + 0x48]
add dword [ebx + 0x2c], eax
mov ecx, dword [ecx + 0xc]
cmp ecx, esi
jle 0x42fabb
mov edx, dword [esp + 0x18]
imul ecx, ecx, 0x28
add ecx, edx
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
cmp dword [esp + 0xc], esi
jmp 0x42d084
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
cmp byte [eax], 1
jne 0x42fae3
push dword [esp + 0x14]
mov esi, dword [eax + 0x28]
call fcn.004325b6
jmp 0x42c9da
mov eax, dword [eax + 0x28]
mov edi, dword [eax + 8]
push 0
push dword [eax + 0x40]
call fcn.004252c0
jmp 0x42e939
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0x10]
and dword [esp + 0x30], 0
mov esi, eax
mov eax, dword [edi + 0xc]
push eax
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
lea eax, [esp + 0x34]
push eax
push ecx
call fcn.00424f67
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
mov eax, dword [esp + 0x30]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x42e722
mov esi, dword [esp + 0x14]
inc byte [esi + 0x5a]
xor eax, eax
push eax
push eax
push eax
push dword [edi + 0x10]
push esi
call fcn.00448e56
add esp, 0x14
dec byte [esi + 0x5a]
jmp 0x42e93b
mov ecx, dword [edi + 0x10]
mov esi, dword [edi + 4]
test ecx, ecx
jne 0x42fbb6
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x10]
mov eax, esi
shl eax, 4
push dword [eax + ecx + 0xc]
call fcn.00442752
mov eax, dword [esp + 0x18]
and dword [eax + 0x18], 0xffffffef
pop ecx
push 1
lea ecx, [ebx + 0x7c]
push ecx
push esi
push eax
call fcn.0044be7b
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
or dword [eax + 0x18], 1
add esp, 0x10
and dword [ebx + 0x98], 0xfffffffc
jmp 0x42fc75
mov eax, dword [esp + 0x14]
and dword [esp + 0x168], 0
push ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x164], esi
lea edx, [ebx + 0x7c]
push 0x4bcfc0
shl esi, 4
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edx
push dword [esi + ecx]
mov esi, eax
push 0x4bcfd0
call fcn.004139f9
add esp, 0x10
mov dword [esp + 0x30], eax
test eax, eax
je 0x43108d
xor ecx, ecx
push ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x170], ecx
lea ecx, [esp + 0x15c]
push ecx
push fcn.0044bcf3
push eax
push esi
mov byte [esi + 0xa5], 1
call fcn.00448e56
add esp, 0x14
mov dword [esp + 0xc], eax
test eax, eax
jne 0x42fc62
mov eax, dword [esp + 0x164]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x42fc62
cmp dword [esp + 0x16c], eax
jne 0x42fc62
push 0x15f51
call fcn.004655e7
pop ecx
mov dword [esp + 0xc], eax
push dword [esp + 0x30]
push esi
call fcn.004120c1
pop ecx
pop ecx
mov byte [esi + 0xa5], 0
cmp dword [esp + 0xc], 0
je case.0x42c52c.86
mov eax, dword [esp + 0x14]
call fcn.0043de6a
cmp dword [esp + 0xc], 7
je 0x4313f0
jmp 0x4308a0
mov ecx, dword [edi + 4]
mov eax, dword [esp + 0x14]
call fcn.0043cc52
jmp 0x42e93b
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 4]
mov esi, dword [esp + 0x14]
shl edi, 4
add edi, dword [esi + 0x10]
push eax
mov eax, dword [edi + 0xc]
add eax, 8
xor edi, edi
call fcn.00415679
pop ecx
push eax
push esi
call fcn.0043e028
or dword [esi + 0x18], 1
pop ecx
pop ecx
jmp 0x42e722
push dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x18]
call fcn.0043dd12
pop ecx
jmp 0x42c922
push dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x18]
call fcn.004534db
jmp 0x42c9da
mov eax, dword [edi + 4]
mov esi, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
mov edx, dword [edi + 8]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x130]
push eax
mov eax, dword [esi]
inc eax
push eax
movzx eax, word [edi + 2]
add ecx, 4
push edx
push ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
call fcn.00425d90
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
add esp, 0x10
call fcn.004271cf
mov eax, dword [esp + 0x130]
test eax, eax
je 0x42fd98
cmp dword [esp + 0x30], 0
je 0x4313f0
dec eax
cdq
sub dword [esi], eax
push 1
push 0xffffffffffffffff
sbb dword [esi + 4], edx
mov esi, dword [esp + 0x24]
push dword [esp + 0x38]
mov eax, fcn.00412074
mov ecx, esi
call fcn.00427448
mov edi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x42fd9c
mov esi, dword [esp + 0x1c]
test byte [esi + 8], 2
movzx eax, byte [esp + 0x54]
je case.0x42c52c.86
movzx ecx, byte [esi + 0xa]
cmp ecx, eax
je case.0x42c52c.86
push eax
push esi
call fcn.00413d40
jmp 0x42c9d9
mov esi, dword [edi + 4]
mov eax, dword [edi + 8]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
test byte [esi + 8], 0x10
mov dword [esp + 0x28], eax
jne 0x42fdfb
mov ebx, esi
call fcn.004272c5
test eax, eax
jne 0x4313ed
mov edi, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x28]
push dword [eax + 4]
push dword [eax]
mov eax, dword [esi + 0x10]
call fcn.00418d0d
jmp 0x42c9d9
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
test byte [esi + 8], 0x10
je 0x42fe5c
mov eax, dword [esi + 0x10]
lea edi, [esp + 0x180]
call fcn.00418f0d
test eax, eax
je 0x42fe58
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
push dword [esp + 0x184]
imul eax, eax, 0x28
push dword [esp + 0x184]
add eax, dword [esp + 0x20]
call fcn.00427232
pop ecx
pop ecx
jmp 0x430c0d
mov edi, dword [esp + 0x10]
mov eax, esi
call fcn.004271cf
jmp case.0x42c52c.11
mov esi, dword [edi + 4]
mov eax, dword [edi + 0xc]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
test byte [esi + 8], 0x10
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
jne 0x42fea7
mov ebx, esi
call fcn.004272c5
test eax, eax
jne 0x4313ed
mov edi, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x20], 0
je 0x42fdfb
push dword [eax + 4]
push dword [eax]
mov eax, dword [esi + 0x10]
push dword [esp + 0x28]
call fcn.00418f55
add esp, 0xc
test eax, eax
jne 0x42ebe2
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0x2c]
jl case.0x42c52c.86
jmp 0x42fdfb
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
cmp word [edi + 2], 0
mov dword [esp + 0x20], edx
mov dword [esp + 0x48], eax
je 0x42ff1f
mov ecx, dword [ebx + 0xc8]
mov esi, dword [edx + 0x14]
test ecx, ecx
je 0x42ff1f
cmp dword [ecx + 0x1c], esi
je 0x42ff17
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x42ff0b
test ecx, ecx
jne case.0x42c52c.86
mov ecx, dword [ebx + 0xd0]
mov esi, dword [esp + 0x14]
cmp ecx, dword [esi + 0x94]
jge 0x431375
test byte [eax + 8], 0x10
jne 0x430035
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 8]
add eax, ecx
mov dword [esp + 0x30], eax
test ecx, ecx
jne 0x42ff54
inc eax
mov dword [esp + 0x30], eax
add eax, 2
mov ecx, eax
imul ecx, ecx, 0xa
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x20]
add ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
mov dword [esp + 0x68], eax
cdq
push edx
push eax
mov ecx, esi
call fcn.0041226c
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4313f0
mov edi, dword [esp + 0x48]
mov eax, edi
call fcn.00426e5e
mov dword [edi + 0x10], esi
mov dword [edi + 0x24], 0x4287b4
mov eax, 0x410
mov word [edi + 8], ax
mov eax, dword [esp + 0x68]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
mov dword [esi + 0x3c], eax
mov dword [esi], ebx
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x50]
push 0x14
cdq
pop ecx
idiv ecx
mov dword [esi + 0x30], eax
mov eax, dword [ebx + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x38], eax
mov eax, dword [ebx + 0x60]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x2c], eax
mov eax, dword [ebx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x88]
imul eax, eax, 0x28
add eax, esi
mov ecx, eax
lea eax, [esi + 0x50]
jmp 0x43002f
mov edx, 0x80
mov word [eax + 8], dx
mov edx, dword [esp + 0x14]
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x43001c
jmp 0x430040
mov eax, dword [esp + 0x48]
mov esi, dword [eax + 0x10]
mov edi, dword [esp + 0x20]
inc dword [ebx + 0xd0]
mov eax, dword [ebx + 0xc8]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x28]
mov dword [esi + 0x20], ecx
mov eax, dword [eax + 0x2c]
mov dword [esi + 0x24], eax
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x44], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x64]
mov dword [esi + 0x48], eax
lea eax, [ebx + 0xdc]
mov ecx, dword [eax]
mov dword [esi + 0x28], ecx
and dword [eax], 0
and dword [ebx + 0x2c], 0
mov dword [ebx + 0xc8], esi
lea eax, [esi + 0x50]
mov dword [ebx + 0x58], eax
mov ecx, dword [esi + 0x3c]
mov dword [ebx + 0x18], ecx
movzx ecx, word [esi + 0x40]
mov dword [ebx + 0x1c], ecx
mov ecx, dword [ebx + 0x18]
imul ecx, ecx, 0x28
mov dword [esp + 0x18], eax
add eax, ecx
mov dword [ebx + 0x60], eax
mov ecx, dword [edi + 0xc]
lea ecx, [eax + ecx*4]
mov dword [esi + 0x18], ecx
mov eax, dword [edi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.00497bc6
mov eax, dword [edi]
mov dword [ebx + 0x68], eax
mov ecx, dword [edi + 4]
add esp, 0xc
mov dword [esp + 0x50], eax
mov dword [ebx + 0x6c], ecx
add eax, 0xffffffec
jmp 0x430c09
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [ebx + 0xc8]
mov edx, dword [ecx + 0x30]
mov esi, dword [ecx + 8]
imul edx, edx, 0x14
mov edx, dword [edx + esi + 4]
add edx, dword [edi + 4]
push 0x1000
imul edx, edx, 0x28
add edx, dword [ecx + 0x10]
push edx
jmp 0x42c9ad
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x20]
and eax, 0x80000
xor edx, edx
or eax, edx
mov eax, dword [edi + 8]
je 0x430130
add ecx, 0x1c8
cdq
jmp 0x43013c
cmp dword [edi + 4], edx
cdq
je 0x430146
add ecx, 0x1c0
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x42c52c.86
add dword [ebx + 0x40], eax
adc dword [ebx + 0x44], edx
jmp case.0x42c52c.86
cmp dword [edi + 4], 0
je 0x43016f
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1c0]
or ecx, dword [eax + 0x1c4]
jne case.0x42c52c.86
jmp 0x43017f
mov eax, dword [ebx + 0x40]
or eax, dword [ebx + 0x44]
jne case.0x42c52c.86
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1c8]
or ecx, dword [eax + 0x1cc]
jmp 0x42d5e9
mov ecx, dword [ebx + 0xc8]
test ecx, ecx
jne 0x4301f2
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov esi, eax
mov dword [esp + 0x1c], eax
call fcn.0042700a
mov esi, dword [edi + 8]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
call fcn.0042700a
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [ecx + 4]
cmp ecx, esi
jg case.0x42c52c.86
jl 0x4301e2
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
cmp ecx, eax
jae case.0x42c52c.86
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp case.0x42c52c.86
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4301f0
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [ecx + 0x10]
jmp 0x4301a4
mov ecx, dword [edi + 4]
imul ecx, ecx, 0x28
add ecx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
mov dword [esp + 0x1ec], eax
test eax, eax
jl case.0x42c52c.86
jg 0x43022c
test esi, esi
jbe case.0x42c52c.86
mov eax, dword [edi + 0xc]
cdq
sub esi, eax
mov eax, dword [esp + 0x1ec]
sbb eax, edx
mov dword [ecx], esi
mov dword [ecx + 4], eax
jmp 0x42ebe2
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], esi
test esi, esi
jl 0x4302cf
jg 0x430287
test ecx, ecx
jbe 0x4302cf
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
test eax, eax
jl 0x43029a
jg 0x43029e
test ecx, ecx
ja 0x43029e
xor ecx, ecx
xor eax, eax
push eax
push ecx
lea edi, [esp + 0x110]
call fcn.004150c4
mov edi, dword [esp + 0x18]
pop ecx
test eax, eax
mov eax, dword [esp + 0x20]
pop ecx
jne 0x4302cf
mov ecx, dword [esp + 0x108]
mov dword [eax], ecx
mov ecx, dword [esp + 0x10c]
jmp 0x42c6ba
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp case.0x42c52c.86
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, ecx
or esi, edx
je case.0x42c52c.86
test edx, edx
jl 0x42ebe2
jg 0x430306
test ecx, ecx
jbe 0x42ebe2
sub ecx, 1
sbb edx, 0
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x42ebe2
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
cmp ecx, 0x80000000
mov edx, dword [eax]
jl 0x43033e
jg 0x430333
test edx, edx
jbe 0x43033e
sub edx, 1
sbb ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jmp 0x42d5e9
movzx eax, word [edi + 2]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x30], eax
lea eax, [eax*4 + 0x44]
push 0
push eax
mov ecx, edi
call fcn.004122f2
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4313f0
and dword [esi + 8], 0
mov eax, dword [esp + 0x30]
lea eax, [esi + eax*4 + 0x1c]
mov dword [esi], eax
and dword [eax + 0x18], 0
mov dword [eax + 0x20], edi
mov edi, dword [esp + 0x10]
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
mov eax, dword [edi + 0x10]
mov dword [esi + 4], eax
mov eax, edi
sub eax, dword [esp + 0x50]
push 0x14
cdq
pop ecx
idiv ecx
and dword [esi + 0x14], 0
mov dword [esi + 0xc], ebx
mov byte [esi + 0x18], 0
mov dword [esi + 0x10], eax
mov al, byte [esp + 0x30]
mov byte [esi + 0x19], al
mov byte [edi + 1], 0xf0
mov dword [edi + 0x10], esi
mov byte [edi], 0x9b
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 0x10]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
cmp dword [esi + 8], eax
je 0x43040e
movzx ecx, byte [esi + 0x19]
dec ecx
mov dword [esi + 8], eax
mov dword [esp + 0x30], ecx
js 0x43040e
lea edx, [esi + ecx*4 + 0x1c]
mov dword [esp + 0x20], edx
mov edx, dword [edi + 8]
add edx, ecx
mov ecx, dword [esp + 0x20]
imul edx, edx, 0x28
add edx, dword [esp + 0x18]
sub dword [esp + 0x20], 4
mov dword [ecx], edx
mov ecx, dword [esp + 0x30]
dec ecx
mov dword [esp + 0x30], ecx
test ecx, ecx
jge 0x4303ea
inc dword [eax + 0xc]
cmp dword [edi + 4], 0
mov eax, dword [esi + 4]
lea ecx, [esi + 0x1c]
push ecx
movzx ecx, byte [esi + 0x19]
push ecx
push esi
je 0x430429
call dword [eax + 0x1c]
jmp 0x43042c
call dword [eax + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je case.0x42c52c.86
jle 0x430461
mov eax, dword [esi]
push 1
push eax
call fcn.00427768
push eax
push 0x4bc5ac
mov edi, ebx
call fcn.00427be6
mov eax, dword [esi + 0x14]
mov edi, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0xc], eax
cmp byte [esi + 0x18], 0
je 0x430486
mov edi, dword [edi - 0x10]
test edi, edi
je 0x430482
mov eax, edi
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
push 0
push 1
call fcn.00427232
pop ecx
pop ecx
mov byte [esi + 0x18], 0
mov eax, dword [esi]
call fcn.00426e5e
mov eax, dword [esi]
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
and dword [esi + 0x14], 0
jmp 0x42d07f
mov esi, dword [edi + 4]
mov eax, dword [edi + 0xc]
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
test eax, eax
je 0x43051f
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x30], eax
push 8
xor eax, eax
pop ecx
lea edi, [esp + 0x200]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x30]
call fcn.004271cf
mov eax, dword [esp + 0x30]
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x200]
push ecx
mov dword [esp + 0x20c], esi
mov dword [esp + 0x208], eax
call dword [eax + 0x18]
mov eax, dword [esp + 0x218]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0xc]
imul esi, esi, 0x28
add esi, dword [esp + 0x1c]
pop ecx
mov edi, eax
jmp 0x430530
mov edx, dword [edi + 0x10]
mov ebx, esi
call fcn.00426da1
mov ebx, dword [ebp + 8]
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
jne 0x43138f
test byte [esi + 8], 2
movzx eax, byte [esp + 0x54]
je 0x430557
movzx ecx, byte [esi + 0xa]
cmp ecx, eax
je 0x430557
push eax
push esi
call fcn.00413d40
pop ecx
pop ecx
mov ecx, esi
call fcn.00427335
test eax, eax
je case.0x42c52c.86
push 0x4bcdbc
mov edi, ebx
call fcn.00427be6
pop ecx
mov dword [esp + 0xc], 0x12
jmp 0x4308a0
mov esi, dword [esp + 0x14]
and dword [esp + 0x110], 0
or dword [esp + 0x118], 0xffffffff
or dword [esp + 0x114], 0xffffffff
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0x118]
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.0046494d
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
je 0x4305df
cmp eax, 5
jne 0x4308a0
and dword [esp + 0xc], 0
mov edi, dword [esp + 0x10]
mov dword [esp + 0x110], 1
mov esi, dword [edi + 0xc]
and dword [esp + 0x24], 0
imul esi, esi, 0x28
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + eax*4 + 0x110]
cdq
push edx
push eax
mov eax, esi
call fcn.00427232
inc dword [esp + 0x2c]
pop ecx
add esi, 0x28
cmp dword [esp + 0x28], 3
pop ecx
jl 0x4305ee
jmp case.0x42c52c.86
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x10]
mov esi, dword [edi + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 4]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov dword [esp + 0x30], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
movzx eax, byte [edi + 5]
mov dword [esp + 0x44], eax
cmp esi, 0xffffffff
jne 0x430651
mov esi, eax
cmp byte [edi + 0x10], 3
jae 0x43066d
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x430671
cmp dword [edi + 0x4c], 0
jl 0x430671
jg 0x43066d
cmp dword [edi + 0x48], 0
jbe 0x430671
mov esi, dword [esp + 0x44]
cmp byte [edi + 0xf], 0
mov eax, 0x4bc53c
jne 0x430682
mov eax, dword [edi + 0xa8]
cmp esi, 5
jne 0x43069f
call fcn.0041426d
test eax, eax
je 0x43069b
mov eax, edi
call fcn.0041c95c
test eax, eax
jne 0x43069f
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
cmp esi, ecx
je 0x430712
push 5
pop edx
cmp ecx, edx
je 0x4306b2
cmp esi, edx
jne 0x430712
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x4f], 0
je 0x4313ac
cmp dword [eax + 0xb4], 1
jg 0x4313ac
cmp ecx, edx
jne 0x4306e6
push eax
mov eax, edi
call fcn.0041ca35
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x430719
mov ecx, esi
jmp 0x4306ee
cmp ecx, 4
jne 0x4306f3
push 2
pop ecx
call fcn.0041c812
cmp dword [esp + 0xc], 0
jne 0x430719
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
mov eax, dword [esp + 0x34]
call fcn.004260ed
pop ecx
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
je 0x43071d
mov esi, dword [esp + 0x44]
mov ecx, esi
call fcn.0041c812
mov edx, dword [esp + 0x1c]
mov ecx, 0xa02
mov word [edx + 8], cx
cmp eax, 6
jne 0x43073a
xor eax, eax
jmp 0x430741
mov eax, dword [eax*4 + 0x4a2bd0]
mov esi, dword [esp + 0x1c]
mov dword [esi + 0x10], eax
call fcn.0041426d
mov dword [esi + 0xc], eax
movzx eax, byte [esp + 0x54]
mov byte [esi + 0xa], 1
cmp eax, 1
je 0x42d07f
push eax
push esi
call fcn.00413d40
pop ecx
jmp 0x42d07e
mov eax, dword [edi + 8]
test eax, eax
je 0x43077f
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
jmp 0x430781
xor eax, eax
push eax
push dword [edi + 4]
mov edi, dword [esp + 0x1c]
lea eax, [ebx + 0x7c]
push eax
call fcn.00455387
add esp, 0xc
jmp 0x42e93b
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
call fcn.00420ea4
mov dword [esp + 0xc], eax
test eax, eax
je case.0x42c52c.86
cmp eax, 0x65
jne 0x4308a0
and dword [esp + 0xc], 0
jmp 0x42ebde
cmp dword [edi + 4], 0
jne 0x4307e6
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x14]
call fcn.0042ab22
jmp case.0x42c52c.86
mov ecx, dword [edi + 8]
inc ecx
lea eax, [ebx + 0x98]
xor ecx, dword [eax]
and ecx, 3
xor dword [eax], ecx
jmp case.0x42c52c.86
mov edi, dword [edi + 0x10]
mov eax, dword [esp + 0x14]
call fcn.00456392
mov dword [esp + 0xc], eax
test edi, edi
je 0x42d07f
mov esi, dword [edi + 8]
mov edi, ebx
call fcn.0042ab88
jmp 0x42d07f
mov esi, dword [esp + 0x10]
xor eax, eax
push 0xa
pop ecx
lea edi, [esp + 0x2b8]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2d8], eax
mov eax, dword [esi + 8]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
lea ebx, [esp + 0x2b8]
push eax
call fcn.004273c2
pop ecx
mov dword [esp + 0xc], eax
mov eax, ebx
push 1
push eax
call fcn.00427768
pop ecx
pop ecx
test eax, eax
je 0x430886
mov ecx, dword [ebp + 8]
add ecx, 0x7c
push ecx
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esi + 4]
call fcn.0045607e
pop ecx
pop ecx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x2b8]
call fcn.00426e5e
cmp dword [esp + 0xc], 0
je 0x42e71f
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x51], 0
je 0x4308b2
mov dword [esp + 0xc], 7
cmp dword [ebx + 0x7c], 0
jne 0x4308d8
mov edx, dword [esp + 0xc]
cmp edx, 0xc0a
je 0x4308d8
call fcn.004642ca
push eax
push 0x4bc5ac
mov edi, ebx
call fcn.00427be6
pop ecx
pop ecx
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov eax, edi
mov dword [ebx + 0x28], edi
call fcn.004142d9
push dword [ebx + 0x7c]
mov eax, dword [esp + 0x14]
push dword [ebx + 0xc0]
sub eax, dword [esp + 0x58]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push 0x4bd070
push edi
call fcn.00413b5e
add esp, 0x14
mov edi, ebx
call fcn.004295f6
cmp dword [esp + 0xc], 0xc0a
jne 0x430928
mov eax, esi
call fcn.00412545
cmp byte [esp + 0x63], 0
mov dword [esp + 0xc], 1
jbe 0x430942
movzx eax, byte [esp + 0x63]
dec eax
call fcn.0043de18
mov eax, dword [esp + 0xd4]
add dword [ebx + 0xb4], eax
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x14]
lea esi, [ebx + 0xc0]
inc dword [esi]
push dword [edi + 0x10]
mov eax, dword [edi + 4]
call fcn.004562a7
dec dword [esi]
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jmp 0x430897
and dword [esp + 0x3c], 0
mov eax, dword [edi + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x4313e0
mov eax, dword [esi]
mov dword [esp + 0x30], eax
test eax, eax
je 0x4313e0
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x34]
push esi
call dword [eax + 0x18]
pop ecx
pop ecx
mov edi, ebx
mov dword [esp + 0xc], eax
call fcn.0042ab88
cmp dword [esp + 0xc], 0
jne 0x4308a0
mov eax, dword [esp + 0x3c]
push 2
mov dword [eax], esi
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
push 0xffffffffffffffff
push 0
push ebx
call fcn.0042c171
add esp, 0x10
test eax, eax
je 0x4313d2
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
jmp 0x42e722
mov eax, dword [edi + 0xc]
mov edx, dword [ebx + 0x60]
imul eax, eax, 0x28
mov ecx, dword [edi + 4]
mov ecx, dword [edx + ecx*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx + 0x28]
mov esi, dword [ecx]
mov dword [esp + 0x30], ecx
mov ecx, dword [esi]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax]
xor edx, edx
cmp dword [esp + 0x20], edx
mov dword [esp + 0x88], ecx
mov ecx, dword [ebx + 0x5c]
jle 0x430a53
add eax, 0x50
jmp 0x430a42
mov eax, dword [esp + 0x68]
mov dword [ecx + edx*4], eax
inc edx
add eax, 0x28
cmp edx, dword [esp + 0x20]
mov dword [esp + 0x68], eax
jl 0x430a3e
mov eax, dword [esp + 0x48]
push ecx
push dword [esp + 0x24]
push dword [edi + 0x10]
push dword [esp + 0x94]
push dword [esp + 0x40]
call dword [eax + 0x20]
add esp, 0x14
mov edi, ebx
mov dword [esp + 0xc], eax
call fcn.0042ab88
cmp dword [esp + 0xc], 0
jne 0x4308a0
push dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
call dword [eax + 0x28]
pop ecx
mov ecx, dword [esp + 0x24]
mov byte [ecx + 2], 0
jmp 0x42edd0
mov esi, dword [edi + 0xc]
mov eax, dword [edi + 4]
imul esi, esi, 0x28
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
add esi, dword [esp + 0x18]
cmp byte [eax + 2], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], esi
jne 0x42ca18
mov eax, dword [eax + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x88], eax
mov eax, dword [eax]
push 8
mov dword [esp + 0x6c], eax
xor eax, eax
pop ecx
lea edi, [esp + 0x220]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x10]
test byte [edi + 2], 1
mov dword [esp + 0x220], esi
je 0x430b06
mov eax, esi
call fcn.004271cf
and dword [esi], 0
mov eax, 0x4001
jmp 0x430b16
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 1
mov word [esi + 8], ax
push dword [edi + 8]
lea eax, [esp + 0x224]
push eax
mov eax, dword [esp + 0x50]
push dword [eax + 0x28]
mov eax, dword [esp + 0x74]
call dword [eax + 0x2c]
mov esi, dword [esp + 0x94]
add esp, 0xc
mov edi, ebx
mov dword [esp + 0xc], eax
call fcn.0042ab88
cmp dword [esp + 0x234], 0
mov esi, dword [esp + 0x30]
jle 0x430b77
push 1
push esi
call fcn.00427768
push eax
push 0x4bc5ac
call fcn.00427be6
mov eax, dword [esp + 0x244]
add esp, 0x10
mov dword [esp + 0xc], eax
test byte [esi + 8], 2
movzx eax, byte [esp + 0x54]
je 0x430b93
movzx ecx, byte [esi + 0xa]
cmp ecx, eax
je 0x430b93
push eax
push esi
call fcn.00413d40
pop ecx
pop ecx
mov ecx, esi
call fcn.00427335
test eax, eax
jne 0x430566
jmp 0x42d07f
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 2], 0
mov dword [esp + 0x30], eax
jne case.0x42c52c.86
mov eax, dword [eax + 0x28]
mov esi, dword [eax]
mov ecx, dword [esi]
push eax
mov dword [esp + 0x4c], ecx
call dword [ecx + 0x24]
pop ecx
mov edi, ebx
mov dword [esp + 0xc], eax
call fcn.0042ab88
cmp dword [esp + 0xc], 0
jne 0x4308a0
mov eax, dword [esp + 0x30]
push dword [eax + 0x28]
mov eax, dword [esp + 0x4c]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x430c0d
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x50]
imul eax, eax, 0x14
lea eax, [eax + ecx - 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x108]
test eax, eax
je 0x42e722
mov eax, dword [esp + 0x14]
xor edx, edx
cmp byte [eax + 0x51], dl
sete dl
lea edx, [edx + edx + 7]
mov dword [esp + 0xc], edx
mov dword [ebx + 0x28], edx
call fcn.004642ca
push eax
push 0x4bc5ac
jmp 0x4313c8
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x20]
mov ecx, 0x4000000
or dword [eax + 0x20], ecx
and esi, ecx
mov ecx, dword [eax + 0x24]
mov dword [eax + 0x24], ecx
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 4]
mov eax, dword [eax + 8]
imul edi, edi, 0x28
add edi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
test byte [edi + 8], 2
je 0x430c91
cmp byte [edi + 0xa], 1
je 0x430c91
push 1
push edi
call fcn.00413d40
pop ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
pop ecx
jmp 0x430c96
and dword [esp + 0xc], 0
cmp dword [esp + 0xc], 0
jne 0x4308a0
push dword [edi + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x4c]
pop ecx
pop ecx
mov dword [esp + 0xc], eax
test esi, esi
jne 0x430cc5
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x24]
and dword [eax + 0x20], 0xfbffffff
mov dword [eax + 0x24], ecx
mov esi, dword [esp + 0x30]
mov edi, ebx
call fcn.0042ab88
and dword [ebx + 0x98], 0xfffffffc
jmp 0x42d07f
mov edi, dword [esp + 0x14]
cmp byte [edi + 0x51], 0
jne 0x4313f0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
test eax, eax
je 0x4313e0
mov esi, dword [eax]
test esi, esi
je 0x4313e0
cmp dword [esi + 0x34], 0
mov edx, dword [ecx + 8]
je 0x42e722
mov al, byte [edi + 0x56]
and dword [esp + 0x24], 0
mov ecx, dword [ebx + 0x5c]
mov byte [esp + 0x8f], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
test edx, edx
jle 0x430d4f
mov edi, dword [esp + 0x24]
mov dword [ecx + edi*4], eax
add eax, 0x28
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edx
jl 0x430d3b
mov eax, dword [esp + 0x10]
mov al, byte [eax + 2]
mov edi, dword [esp + 0x14]
mov byte [edi + 0x56], al
lea eax, [esp + 0x178]
push eax
push ecx
push edx
push dword [esp + 0x3c]
call dword [esi + 0x34]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x9f]
mov byte [edi + 0x56], al
add esp, 0x10
mov edi, ebx
call fcn.0042ab88
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 0x10]
jne 0x430db3
cmp dword [eax + 4], 0
je 0x430db3
mov edx, dword [esp + 0x178]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], edx
mov edx, dword [esp + 0x17c]
mov dword [ecx + 0x2c], edx
cmp byte [esp + 0xc], 0x13
jne 0x430df0
mov ecx, dword [eax + 0x10]
cmp byte [ecx + 0x10], 0
je 0x430df0
movzx eax, word [eax + 2]
cmp ax, 4
jne 0x430dd7
and dword [esp + 0xc], 0
jmp 0x42e722
cmp ax, 5
jne 0x430de2
push 2
pop eax
jmp 0x430de5
movzx eax, ax
mov byte [ebx + 0x92], al
jmp 0x42d07f
inc dword [ebx + 0x2c]
jmp 0x42d07f
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0x10]
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
and dword [eax + 4], 0
mov dword [eax], ecx
jmp case.0x42c52c.86
mov eax, edi
mov ecx, ebx
call fcn.0042c471
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x10]
mov esi, eax
mov eax, dword [edi + 4]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov ecx, dword [edi + 0xc]
xor edx, edx
test ecx, ecx
je 0x430e54
mov edx, dword [eax + 4]
mov edx, dword [edx + 0x2c]
cmp edx, ecx
jae 0x430e54
mov edx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax]
test edx, edx
jle 0x430e63
mov dword [eax + 0x9c], edx
mov eax, dword [eax + 0x9c]
cdq
jmp 0x42d53e
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
lea eax, [eax*4 + 0x1c]
push 0
push eax
call fcn.004122f2
pop ecx
pop ecx
mov ecx, eax
test ecx, ecx
je 0x4313f0
mov esi, dword [esp + 0x10]
and dword [ecx], 0
mov eax, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov eax, esi
sub eax, dword [esp + 0x50]
push 0x14
cdq
pop edi
idiv edi
and dword [ecx + 0x14], 0
mov dword [ecx + 0xc], ebx
mov edi, esi
mov dword [ecx + 0x10], eax
mov al, byte [esp + 0x30]
mov byte [ecx + 0x19], al
add byte [esi], 2
mov byte [esi + 1], 0xf0
mov dword [esi + 0x10], ecx
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 0x10]
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
cmp dword [esi], eax
je 0x430f04
mov dword [esi], eax
movzx eax, byte [esi + 0x19]
dec eax
js 0x430f04
lea ecx, [esi + eax*4 + 0x1c]
mov edx, dword [edi + 8]
add edx, eax
imul edx, edx, 0x28
add edx, dword [esp + 0x18]
dec eax
mov dword [ecx], edx
sub ecx, 4
test eax, eax
jge 0x430eee
mov eax, dword [esp + 0x1c]
mov cx, word [eax + 8]
mov edx, 0x3e40
and cx, dx
or cx, 1
mov word [eax + 8], cx
mov eax, dword [esi + 4]
lea ecx, [esi + 0x1c]
push ecx
movzx ecx, byte [esi + 0x19]
push ecx
push esi
call dword [eax + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x430f8b
jle 0x430f5e
push 1
push dword [esp + 0x20]
call fcn.00427768
push eax
push 0x4bc5ac
mov edi, ebx
call fcn.00427be6
mov eax, dword [esi + 0x14]
mov edi, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0xc], eax
push dword [edi + 4]
lea eax, [ebx + 0xdc]
push dword [esp + 0x18]
mov ebx, dword [esi + 0x10]
call fcn.00429986
and dword [esi + 0x14], 0
cmp dword [esp + 0x14], 0
mov ebx, dword [ebp + 8]
pop ecx
pop ecx
jne 0x4308a0
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
movzx ecx, word [esi + 8]
test cl, 0x12
je case.0x42c52c.86
test cl, 2
jmp 0x43053f
mov eax, dword [esp + 0x14]
test byte [eax + 0x58], 1
je 0x43101b
test byte [ebx + 0x98], 0x10
jne 0x43101b
mov ecx, dword [edi + 0x10]
test ecx, ecx
jne 0x430fc8
mov ecx, dword [ebx + 0xc0]
test ecx, ecx
je 0x43101b
cmp dword [eax + 0xbc], 1
push ecx
jle 0x431009
push 0x4bd068
mov esi, eax
call fcn.004139f9
mov esi, eax
mov eax, dword [esp + 0x1c]
push esi
push ebx
push dword [eax + 0xd0]
push 1
call dword [eax + 0xcc]
add esp, 0x18
test esi, esi
je 0x43101b
push esi
push dword [esp + 0x18]
call fcn.004120c1
pop ecx
pop ecx
jmp 0x43101b
push ebx
push dword [eax + 0xd0]
push 1
call dword [eax + 0xcc]
add esp, 0x10
mov eax, dword [edi + 4]
cmp eax, dword [0x4fc3b4]
jl 0x431055
cmp byte [edi], 0xa8
je case.0x42c52c.86
xor edx, edx
inc edx
cmp dword [ebx + 0x6c], edx
jle 0x431051
push 0x14
pop ecx
mov eax, dword [ebx + 0x68]
add eax, ecx
cmp byte [eax], 0x11
jne 0x431048
and dword [eax + 4], 0
inc edx
add ecx, 0x14
cmp edx, dword [ebx + 0x6c]
jl 0x43103a
and dword [edi + 4], 0
inc dword [edi + 4]
inc dword [ebx + 0xbc]
jmp 0x42ebe2
push 0x4bce60
jmp 0x431274
push dword [esp + 0x24]
mov edi, ebx
push 0x4bce94
call fcn.00427be6
pop ecx
jmp 0x43130f
push 0x4bceac
jmp 0x431274
mov dword [esp + 0xc], 7
jmp 0x42fc80
mov ecx, dword [edi + 4]
mov dword [ebx + 0x28], ecx
cmp dword [ebx + 0x28], 0
mov cl, byte [edi + 8]
mov byte [ebx + 0x92], cl
mov dword [ebx + 0x24], eax
je 0x43112a
movzx eax, word [edi + 2]
test ax, ax
je 0x4310f8
movzx eax, ax
push dword [eax*4 + 0x4a20d4]
mov edi, ebx
push 0x4bce28
call fcn.00427be6
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
pop ecx
pop ecx
test eax, eax
je 0x431109
mov esi, dword [esp + 0x14]
push eax
push dword [ebx + 0x7c]
push 0x4bce40
call fcn.004139f9
add esp, 0xc
mov dword [ebx + 0x7c], eax
jmp 0x431109
push dword [edi + 0x10]
mov edi, ebx
push 0x4bc5ac
call fcn.00427be6
pop ecx
pop ecx
push dword [ebx + 0x7c]
mov eax, dword [esp + 0x14]
push dword [ebx + 0xc0]
push dword [esp + 0x38]
push 0x4bce48
push dword [eax + 4]
call fcn.00413b5e
add esp, 0x14
mov edi, ebx
call fcn.004295f6
mov dword [esp + 0xc], eax
push 5
pop eax
cmp dword [esp + 0xc], eax
jne 0x4312d8
mov dword [ebx + 0x28], eax
jmp 0x430942
push 0
mov eax, ebx
call fcn.00429596
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4308a0
push 1
mov eax, ebx
call fcn.00429572
mov eax, dword [ebx + 0x20]
mov esi, dword [esp + 0x14]
inc eax
inc eax
or eax, 1
mov dword [ebx + 0x20], eax
mov eax, dword [esi + 4]
imul eax, eax, 0x28
pop ecx
mov ecx, dword [esp + 0x18]
add eax, ecx
xor edi, edi
mov dword [ebx + 0x78], eax
cmp dword [esi + 8], edi
jle 0x4311c9
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov ecx, 0x1000
test word [eax + 8], cx
je 0x4311b5
push eax
call fcn.00426c4f
pop ecx
test eax, eax
jne 0x4313f0
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
call fcn.00426cfe
add dword [esp + 0x24], 0x28
inc edi
cmp edi, dword [esi + 8]
jl 0x431193
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x51], 0
jne 0x4313f0
test byte [eax + 0x58], 4
je 0x4311f1
push 0
push ebx
push dword [eax + 0xd0]
push 4
call dword [eax + 0xcc]
add esp, 0x10
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x50]
push 0x14
cdq
pop ecx
idiv ecx
mov dword [esp + 0xc], 0x64
inc eax
mov dword [ebx + 0x24], eax
jmp 0x430942
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x50]
push 0x14
cdq
pop edi
idiv edi
mov dword [ebx + 0x24], eax
mov byte [esi + 0x4f], 0
mov dword [esp + 0xc], ecx
mov dword [ebx + 0x28], ecx
jmp 0x430942
mov esi, dword [esp + 0x14]
mov eax, dword [edi + 4]
movzx ecx, byte [esi + 0x4f]
mov edi, dword [edi + 8]
mov dword [esp + 0x30], eax
cmp eax, ecx
je 0x4312ee
test edi, edi
je 0x431262
push 0x204
mov eax, esi
call fcn.004641f6
pop ecx
mov byte [esi + 0x4f], 1
jmp 0x4312a6
test eax, eax
je 0x431289
cmp dword [esi + 0xb8], 0
jle 0x431289
push 0x4bcee4
mov edi, ebx
call fcn.00427be6
pop ecx
mov dword [esp + 0xc], 5
jmp 0x4308a0
push 1
mov eax, ebx
call fcn.00429596
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x430942
mov al, byte [esp + 0x30]
mov byte [esi + 0x4f], al
mov edi, ebx
call fcn.004295f6
push 5
pop ecx
cmp eax, ecx
jne 0x4312d3
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x50]
push 0x14
cdq
pop edi
idiv edi
mov dword [ebx + 0x24], eax
mov al, 1
sub al, byte [esp + 0x30]
mov byte [esi + 0x4f], al
jmp 0x431225
call fcn.00463e92
mov eax, dword [ebx + 0x28]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [esp + 0xc], eax
jmp 0x430942
test eax, eax
jne 0x4312f9
mov eax, 0x4bcf1c
jmp 0x431307
mov eax, 0x4bcf4c
test edi, edi
jne 0x431307
mov eax, 0x4bcf78
push eax
mov edi, ebx
call fcn.00427be6
pop ecx
mov dword [esp + 0xc], 1
jmp 0x4308a0
mov dword [esp + 0xc], 8
jmp 0x4308a0
cmp al, 5
jne 0x43089d
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x50]
push 0x14
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp + 8]
mov ebx, ecx
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 0x28], eax
jmp 0x430942
mov dword [esp + 0xc], 0x204
jmp 0x4308a0
mov dword [esp + 0xc], 6
mov byte [ebx + 0x92], 2
jmp 0x4308a0
push 0x4bcffc
mov edi, ebx
mov dword [esp + 0x10], 1
call fcn.00427be6
pop ecx
jmp 0x4308a0
push 1
push esi
call fcn.00427768
push eax
push 0x4bc5ac
mov edi, ebx
call fcn.00427be6
add esp, 0x10
jmp 0x4308a0
mov dword [esp + 0xc], 1
mov eax, 0x4bd024
cmp esi, edx
je 0x4313c2
mov eax, 0x4bd02c
push eax
push 0x4bd034
mov edi, ebx
call fcn.00427be6
pop ecx
jmp 0x431389
push dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
call dword [eax + 0x1c]
pop ecx
jmp 0x4313f0
mov dword [esp + 0xc], 6
jmp 0x4308a0
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x14]
call fcn.00412545
push 0x4bd090
mov edi, ebx
call fcn.00427be6
pop ecx
mov dword [esp + 0xc], 7
jmp 0x4308a0