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

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x1e0
mov eax, dword [0x4a89e8]
xor eax, ebp
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x7c]
mov ecx, dword [eax]
and dword [ebp - 0x4c], 0
cmp dword [eax + 0x50], 0xbdf20da3
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x14]
mov cl, byte [ecx + 0x79]
mov dword [ebp - 0x7c], eax
mov byte [ebp - 0x88], cl
je 0x45627f
push 0x15
pop eax
jmp 0x458fcb
cmp dword [eax + 0x80], 7
push ebx
mov ebx, dword [eax + 0x2c]
push esi
push edi
mov dword [ebp - 0x50], ebx
je 0x4564c7
mov esi, eax
mov eax, dword [esi + 0x22c]
and dword [esi + 0x80], 0
test eax, eax
je 0x4562bc
push eax
lea edi, [ebp - 0x50]
call fcn.004560fa
and dword [esi + 0x22c], 0
mov ebx, dword [ebp - 0x50]
pop ecx
mov eax, dword [ebp - 0x5c]
mov byte [esi + 0x234], 0
and dword [eax + 0xd4], 0
test byte [eax + 8], 4
jne 0x459106
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x64], eax
call fcn.00449bd4
test eax, eax
jne 0x4564c7
mov ecx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x7c]
mov esi, ecx
imul esi, esi, 0x14
add esi, dword [edi + 0x18]
mov al, byte [esi]
mov byte [ebp - 0x71], al
movzx eax, al
lea edx, [eax - 1]
cmp edx, 0x8c
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x60], eax
ja case.0x45631c.11
movzx edx, byte [edx + 0x4592e7]
jmp dword [edx*4 + 0x459157]
mov eax, dword [ebp - 0x5c]
test byte [eax + 8], 4
jne 0x459106
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x64], esi
jmp case.0x45631c.11
lea eax, [edi + 0x220]
mov edx, dword [eax]
inc ecx
mov dword [edi + edx*4 + 0x90], ecx
inc dword [eax]
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 0x64], eax
jmp case.0x45631c.11
lea eax, [edi + 0x220]
dec dword [eax]
mov eax, dword [eax]
mov edi, dword [edi + eax*4 + 0x90]
dec edi
mov dword [ebp - 0x64], edi
jmp case.0x45631c.11
add ebx, 0x40
mov word [ebx + 0x18], 4
mov eax, dword [esi + 4]
cdq
mov dword [ebx], eax
mov dword [ebp - 0x50], ebx
mov dword [ebx + 4], edx
jmp case.0x45631c.11
add ebx, 0x40
mov word [ebx + 0x18], 0xa2
mov esi, dword [esi + 0xc]
push esi
mov dword [ebp - 0x50], ebx
mov dword [ebx + 0x10], esi
call fcn.00480356
mov dword [ebx + 0x14], eax
push ebx
mov byte [ebx + 0x1b], 1
call fcn.0044a015
mov dword [ebx], eax
pop ecx
mov dword [ebx + 4], edx
or word [ebx + 0x18], 4
pop ecx
jmp case.0x45631c.11
add ebx, 0x40
mov word [ebx + 0x18], 0xa2
mov esi, dword [esi + 0xc]
push esi
mov dword [ebp - 0x50], ebx
mov dword [ebx + 0x10], esi
call fcn.00480356
mov dword [ebx + 0x14], eax
push ebx
mov byte [ebx + 0x1b], 1
call fcn.0044a074
mov dword [ebx + 8], eax
movzx eax, byte [ebp - 0x88]
push eax
mov dword [ebx + 0xc], edx
or word [ebx + 0x18], 8
push ebx
call fcn.00449df8
add esp, 0x10
jmp case.0x45631c.11
push dword [esi + 0xc]
mov byte [esi], 0x18
call fcn.00480356
pop ecx
mov dword [esi + 4], eax
add ebx, 0x40
mov word [ebx + 0x18], 0xa2
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0x14], eax
mov al, byte [ebp - 0x88]
mov dword [ebp - 0x50], ebx
mov byte [ebx + 0x1b], al
jmp case.0x45631c.11
add ebx, 0x40
mov word [ebx + 0x18], 1
and dword [ebx + 0x14], 0
mov dword [ebp - 0x50], ebx
jmp case.0x45631c.11
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x44]
add ebx, 0x40
shl eax, 6
push 0x80
lea eax, [eax + ecx - 0x40]
push eax
push ebx
mov dword [ebp - 0x50], ebx
call fcn.0044a1d5
add esp, 0xc
jmp case.0x45631c.11
push dword [esi + 4]
lea edi, [ebp - 0x50]
call fcn.004560fa
pop ecx
mov ebx, dword [ebp - 0x50]
inc dword [ebp - 0x64]
cmp dword [ebp - 0x4c], 0
je 0x4562dd
jmp 0x458ee0
mov ecx, dword [esi + 4]
shl ecx, 6
mov eax, ebx
mov edi, 0x100
sub eax, ecx
push edi
add ebx, 0x40
push eax
push ebx
mov dword [ebp - 0x50], ebx
call fcn.0044a1d5
add esp, 0xc
cmp dword [esi + 8], 0
je case.0x45631c.11
test word [ebx + 0x18], di
je case.0x45631c.11
push ebx
call fcn.00449e13
test eax, eax
pop ecx
je case.0x45631c.11
mov eax, dword [ebp - 0x7c]
push 0
add eax, 0x230
push 0x4905b4
push eax
call fcn.00449cc2
add esp, 0xc
mov dword [ebp - 0x4c], 7
jmp 0x458eea
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 4]
shl ecx, 6
mov eax, ebx
sub eax, ecx
test word [ebx + 0x18], 0x100
push 0x10
pop ecx
mov esi, eax
lea edi, [ebp - 0x48]
mov dword [ebp - 0x54], eax
rep movsd dword es:[edi], dword [esi]
je 0x45651b
push ebx
call fcn.00449e13
test eax, eax
pop ecx
jne 0x4564c7
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x78]
and dword [ebp - 0x68], 0
cmp dword [ecx + 4], 0
jle 0x45657a
lea edx, [eax + 0x40]
mov dword [ebp - 0x6c], edx
test word [edx + 0x18], 0x100
je 0x456549
push dword [ebp - 0x6c]
call fcn.00449e13
test eax, eax
pop ecx
jne 0x4564c7
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x54]
push 0x10
pop ecx
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
test word [edx - 0x28], 0x200
je 0x456560
lea ecx, [edx - 0x20]
mov dword [edx - 0x30], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x68]
add eax, 0x40
add edx, 0x40
cmp esi, dword [ecx + 4]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x6c], edx
jl 0x45652e
push 0x10
pop ecx
lea esi, [ebp - 0x48]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
test word [ebx + 0x18], 0x200
je case.0x45631c.11
lea eax, [ebx + 0x20]
mov dword [ebx + 0x10], eax
jmp case.0x45631c.11
mov eax, dword [esi + 4]
shl eax, 6
mov ecx, ebx
sub ecx, eax
push ebx
push ecx
call fcn.0044a23d
pop ecx
pop ecx
sub ebx, 0x40
mov dword [ebp - 0x50], ebx
jmp case.0x45631c.11
mov edi, dword [esi + 4]
and dword [ebp - 0x6c], 0
and dword [ebp - 0x78], 0
inc edi
inc edi
mov eax, edi
shl eax, 6
mov ecx, ebx
sub ecx, eax
test edi, edi
lea eax, [ecx + 0x40]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x54], eax
jle 0x456636
mov eax, dword [ebp - 0x54]
movzx eax, word [eax + 0x18]
test al, 1
jne 0x45661c
test al, 0x12
jne 0x456605
movzx eax, byte [ebp - 0x88]
push eax
push dword [ebp - 0x54]
call fcn.00449eef
test eax, eax
pop ecx
pop ecx
jne 0x4564c7
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x14]
add dword [ebp - 0x6c], eax
inc dword [ebp - 0x78]
add dword [ebp - 0x54], 0x40
cmp dword [ebp - 0x78], edi
jl 0x4565dc
jmp 0x456620
or dword [ebp - 0x6c], 0xffffffff
cmp dword [ebp - 0x6c], 0
jge 0x456636
cmp dword [esi + 8], 0
jne 0x456a36
push edi
jmp 0x456a2a
mov eax, dword [ebp - 0x6c]
add eax, 2
push 1
push eax
call fcn.00449c00
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x78], eax
je 0x4564c7
and dword [ebp - 0x54], 0
test edi, edi
jle 0x456691
mov eax, dword [ebp - 0x70]
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edi
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + 4]
push ecx
push dword [eax]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x78]
add eax, ecx
push eax
call fcn.00480466
mov eax, dword [ebp - 0x70]
add dword [ebp - 0x54], eax
add dword [ebp - 0x6c], 0x40
add esp, 0xc
dec dword [ebp - 0x60]
jne 0x456665
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x78]
add eax, ecx
mov byte [eax], 0
mov byte [eax + 1], 0
cmp dword [esi + 8], 0
jne 0x4566b3
push edi
lea edi, [ebp - 0x50]
call fcn.004560fa
mov ebx, dword [ebp - 0x50]
pop ecx
mov eax, dword [ebp - 0x54]
add ebx, 0x40
mov dword [ebx + 0x14], eax
mov al, byte [ebp - 0x88]
mov word [ebx + 0x18], 0x62
and dword [ebx + 0x1c], 0
mov byte [ebx + 0x1b], al
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x50], ebx
jmp 0x456593
movzx edx, word [ebx + 0x18]
lea edi, [ebx - 0x40]
movzx ecx, word [edi + 0x18]
movzx eax, cx
movzx edx, dx
or eax, edx
mov dword [ebp - 0x70], eax
test al, 1
movzx eax, word [ebx + 0x18]
mov dword [ebp - 0x58], edi
je 0x45670d
test al, 0x40
je 0x456706
push ebx
call fcn.00449fca
pop ecx
mov ebx, edi
jmp 0x456821
and cl, al
test cl, 4
je 0x4567a0
mov edx, dword [ebp - 0x60]
sub edx, 0x4d
mov esi, dword [edi]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edi, dword [edi + 4]
je 0x456770
dec edx
je 0x45676a
dec edx
je 0x45675b
dec edx
mov edx, eax
je 0x456748
or edx, ecx
je 0x456811
push ecx
push eax
push edi
push esi
call fcn.004806b0
jmp 0x456764
or edx, ecx
je 0x456811
push ecx
push eax
push edi
push esi
call fcn.004804b0
jmp 0x456764
push ecx
push eax
push edi
push esi
call fcn.00480470
mov esi, eax
mov edi, edx
jmp 0x456774
sub esi, eax
sbb edi, ecx
jmp 0x456774
add esi, eax
adc edi, ecx
movzx eax, word [ebx + 0x18]
test al, 0x40
je 0x456783
push ebx
call fcn.00449fca
pop ecx
mov ebx, dword [ebp - 0x58]
test byte [ebx + 0x18], 0x40
mov dword [ebp - 0x50], ebx
je 0x456796
push ebx
call fcn.00449fca
pop ecx
mov dword [ebx], esi
mov dword [ebx + 4], edi
jmp 0x456acd
push ebx
call fcn.0044a074
push dword [ebp - 0x58]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
call fcn.0044a074
mov edi, eax
movzx eax, byte [esi]
sub eax, 0x4d
pop ecx
pop ecx
mov dword [ebp - 0xf4], edx
je 0x456888
dec eax
je 0x456874
dec eax
je 0x456856
dec eax
je 0x4567fe
fild dword [ebp - 0xb0]
fcomp qword [0x48c9f0]
fnstsw ax
test ah, 0x44
jnp 0x456811
mov eax, edi
cdq
idiv dword [ebp - 0xb0]
mov eax, edx
cdq
jmp 0x45686e
fild qword [ebp - 0xb0]
fcomp qword [0x48c9f0]
fnstsw ax
test ah, 0x44
jp 0x45683c
test byte [ebx + 0x18], 0x40
je 0x45681e
push ebx
call fcn.00449fca
pop ecx
mov ebx, dword [ebp - 0x58]
test byte [ebx + 0x18], 0x40
mov dword [ebp - 0x50], ebx
je 0x456831
push ebx
call fcn.00449fca
pop ecx
mov word [ebx + 0x18], 1
jmp case.0x45631c.11
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
push dword [ebp - 0xf4]
push edi
call fcn.004804b0
jmp 0x45686e
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
push dword [ebp - 0xf4]
push edi
call fcn.00480470
mov edi, eax
mov esi, edx
jmp 0x4568a0
sub edi, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xf4]
sbb esi, dword [ebp - 0xac]
jmp 0x4568a0
add edi, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xac]
adc dword [ebp - 0xf4], eax
mov esi, dword [ebp - 0xf4]
test byte [ebx + 0x18], 0x40
je 0x4568ad
push ebx
call fcn.00449fca
pop ecx
mov ebx, dword [ebp - 0x58]
test byte [ebx + 0x18], 0x40
mov dword [ebp - 0x50], ebx
je 0x4568c0
push ebx
call fcn.00449fca
pop ecx
test byte [ebp - 0x70], 8
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], esi
mov word [ebx + 0x18], 8
jne case.0x45631c.11
push ebx
call fcn.0044a0ef
pop ecx
jmp case.0x45631c.11
mov eax, dword [edi + 0x30]
mov edx, dword [esi + 8]
mov dword [ebp - 0x60], eax
mov eax, edx
shl eax, 6
mov ecx, ebx
sub ecx, eax
add ecx, 0x40
xor edi, edi
test edx, edx
mov dword [ebp - 0x90], edx
jle 0x456916
mov eax, dword [ebp - 0x60]
mov dword [eax + edi*4], ecx
call fcn.004560ce
inc edi
add ecx, 0x40
cmp edi, edx
jl 0x456903
cmp dword [esi + 0x10], 0xfffffffb
mov eax, dword [esi + 0xc]
jne 0x456925
and dword [ebp - 4], 0
jmp 0x45692a
mov dword [ebp - 4], eax
mov eax, dword [eax]
and dword [ebp + 0x10], 0
and dword [ebp + 0x1c], 0
mov dword [ebp - 8], eax
mov word [ebp + 0x18], 1
mov byte [ebp + 0x44], 0
cmp byte [eax + 3], 0
je 0x45694b
mov eax, dword [esi - 8]
mov dword [ebp + 0x48], eax
push dword [ebp - 0x5c]
call fcn.00449984
test eax, eax
pop ecx
jne 0x458ea6
push dword [ebp - 0x60]
lea eax, [ebp - 8]
push dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 8]
call dword [eax + 0x10]
push dword [ebp - 0x5c]
call fcn.00449954
add esp, 0x10
test eax, eax
jne 0x458ea6
call fcn.00449bd4
test eax, eax
jne 0x4564c7
push dword [ebp - 0x90]
lea edi, [ebp - 0x50]
call fcn.004560fa
cmp dword [ebp - 4], 0
pop ecx
je 0x4569be
push dword [esi + 4]
push dword [ebp - 4]
call fcn.00454069
mov eax, dword [ebp - 4]
pop ecx
pop ecx
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0xfffffff9
cmp byte [ebp + 0x44], 0
je 0x4569e9
lea eax, [ebp]
push 0
push eax
call fcn.004488fa
pop ecx
push eax
mov eax, dword [ebp - 0x7c]
add eax, 0x230
push eax
call fcn.00449cc2
add esp, 0xc
mov dword [ebp - 0x4c], 1
movzx eax, byte [ebp - 0x88]
push eax
lea eax, [ebp]
push eax
call fcn.00449df8
mov ebx, dword [ebp - 0x50]
and word [ebx + 0x58], 0
add ebx, 0x40
lea eax, [ebp]
push eax
push ebx
mov dword [ebp - 0x50], ebx
call fcn.0044a23d
jmp 0x456402
lea eax, [ebx - 0x40]
mov cl, byte [eax + 0x18]
or cl, byte [ebx + 0x18]
mov dword [ebp - 0x58], eax
test cl, 1
je 0x456a41
push 2
lea edi, [ebp - 0x50]
call fcn.004560fa
pop ecx
mov ebx, dword [ebp - 0x50]
add ebx, 0x40
mov dword [ebp - 0x50], ebx
jmp 0x456831
push eax
call fcn.0044a015
push ebx
mov edi, eax
mov dword [ebp - 0xcc], edx
call fcn.0044a015
pop ecx
pop ecx
mov ecx, eax
movzx eax, byte [esi]
sub eax, 0x49
je 0x456a9a
dec eax
je 0x456a90
dec eax
je 0x456a79
dec eax
jne 0x456aa2
mov edx, dword [ebp - 0xcc]
mov eax, edi
call fcn.00480680
jmp 0x456a86
mov edx, dword [ebp - 0xcc]
mov eax, edi
call fcn.00480660
mov edi, eax
mov dword [ebp - 0xcc], edx
jmp 0x456aa2
or edi, ecx
or dword [ebp - 0xcc], edx
jmp 0x456aa2
and edi, ecx
and dword [ebp - 0xcc], edx
test byte [ebx + 0x18], 0x40
je 0x456aaf
push ebx
call fcn.00449fca
pop ecx
mov ebx, dword [ebp - 0x58]
test byte [ebx + 0x18], 0x40
mov dword [ebp - 0x50], ebx
je 0x456ac2
push ebx
call fcn.00449fca
pop ecx
mov eax, dword [ebp - 0xcc]
mov dword [ebx], edi
mov dword [ebx + 4], eax
mov word [ebx + 0x18], 4
jmp case.0x45631c.11
push ebx
call fcn.0044a112
mov eax, dword [esi + 4]
cdq
add dword [ebx], eax
pop ecx
adc dword [ebx + 4], edx
jmp case.0x45631c.11
push dword [ebp - 0x88]
mov eax, ebx
push 0x63
call fcn.004561c9
movzx eax, word [ebx + 0x18]
test al, 0xc
pop ecx
pop ecx
jne 0x456b1c
test al, 0x40
je 0x456b11
push ebx
call fcn.00449fca
pop ecx
sub ebx, 0x40
mov dword [ebp - 0x50], ebx
jmp 0x456330
test al, 4
je 0x456b35
xor ecx, ecx
xor eax, eax
cmp dword [esi + 4], ecx
je 0x456b2a
inc eax
mov edi, dword [ebx]
mov esi, dword [ebx + 4]
add edi, eax
adc esi, ecx
jmp 0x456b8a
push ebx
call fcn.0044a134
mov eax, dword [ebx + 8]
cdq
mov edi, eax
mov eax, dword [ebx + 0xc]
cmp eax, edx
pop ecx
mov dword [ebp - 0xec], edx
jl 0x456b62
jg 0x456b58
mov eax, dword [ebx + 8]
cmp eax, edi
jbe 0x456b62
add edi, 1
adc dword [ebp - 0xec], 0
cmp dword [esi + 4], 0
je 0x456b84
mov eax, dword [ebx + 8]
cmp eax, edi
jne 0x456b84
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebp - 0xec]
jne 0x456b84
add edi, 1
adc dword [ebp - 0xec], 0
mov esi, dword [ebp - 0xec]
test byte [ebx + 0x18], 0x40
je 0x456b97
push ebx
call fcn.00449fca
pop ecx
mov dword [ebx], edi
mov dword [ebx + 4], esi
jmp 0x456acd
push dword [ebp - 0x88]
mov eax, ebx
push 0x63
call fcn.004561c9
movzx eax, word [ebx + 0x18]
test al, 4
pop ecx
pop ecx
jne 0x456be1
cmp dword [esi + 8], 0
je 0x45906c
cmp dword [esi + 4], 0
je 0x456330
push 1
lea edi, [ebp - 0x50]
call fcn.004560fa
mov ebx, dword [ebp - 0x50]
pop ecx
jmp 0x456330
test al, 0x40
je 0x456acd
push ebx
call fcn.00449fca
pop ecx
jmp 0x456acd
test byte [ebx + 0x18], 4
je case.0x45631c.11
push ebx
call fcn.0044a134
jmp 0x4568dc
test byte [ebx + 0x18], 1
jne case.0x45631c.11
movzx eax, word [ebx + 0x18]
push dword [ebp - 0x88]
movzx ecx, al
shr cl, 3
push 0x61
and ecx, 2
or ecx, eax
mov eax, ebx
mov word [ebx + 0x18], cx
call fcn.004561c9
and word [ebx + 0x18], 0xffe3
pop ecx
pop ecx
jmp case.0x45631c.11
movzx eax, word [ebx + 0x18]
test al, 1
jne case.0x45631c.11
test al, 0x10
jne 0x456c69
push dword [ebp - 0x88]
mov eax, ebx
push 0x61
call fcn.004561c9
or word [ebx + 0x18], 0x10
pop ecx
pop ecx
and word [ebx + 0x18], 0xfff1
jmp case.0x45631c.11
test byte [ebx + 0x18], 1
jne case.0x45631c.11
push ebx
call fcn.0044a157
jmp 0x4568dc
test byte [ebx + 0x18], 1
jne case.0x45631c.11
push ebx
call fcn.0044a112
jmp 0x4568dc
test byte [ebx + 0x18], 1
jne case.0x45631c.11
jmp 0x456bff
movzx eax, word [ebx + 0x18]
lea edi, [ebx - 0x40]
mov cl, byte [edi + 0x18]
or cl, al
test cl, 1
je 0x456ced
test word [esi + 4], 0x200
je 0x456d4d
not eax
and eax, 1
cdq
push edx
push eax
push ebx
call fcn.0044a18a
movzx eax, word [edi + 0x18]
not eax
and eax, 1
cdq
push edx
push eax
push edi
call fcn.0044a18a
add esp, 0x18
mov al, byte [esi + 4]
test al, al
mov byte [ebp - 0x10c], al
je 0x456d23
push dword [ebp - 0x88]
mov eax, edi
push dword [ebp - 0x10c]
call fcn.004561c9
push dword [ebp - 0x88]
mov eax, ebx
push dword [ebp - 0x10c]
call fcn.004561c9
add esp, 0x10
push dword [esi + 0xc]
push ebx
push edi
call fcn.0044a4db
movzx ecx, byte [esi]
add esp, 0xc
sub ecx, 0x42
je 0x456d9c
dec ecx
je 0x456d93
dec ecx
je 0x456d8a
dec ecx
je 0x456d81
dec ecx
je 0x456d78
xor ecx, ecx
test eax, eax
setge cl
jmp 0x456da3
push 2
lea edi, [ebp - 0x50]
call fcn.004560fa
mov eax, dword [esi + 8]
test eax, eax
pop ecx
je 0x456a33
test word [esi + 4], 0x100
je 0x45647b
dec eax
mov dword [ebp - 0x64], eax
jmp 0x45647b
xor ecx, ecx
test eax, eax
setl cl
jmp 0x456da3
xor ecx, ecx
test eax, eax
setle cl
jmp 0x456da3
xor ecx, ecx
test eax, eax
setg cl
jmp 0x456da3
xor ecx, ecx
test eax, eax
sete cl
jmp 0x456da3
xor ecx, ecx
test eax, eax
setne cl
push 2
lea edi, [ebp - 0x50]
mov dword [ebp - 0x68], ecx
call fcn.004560fa
mov esi, dword [esi + 8]
test esi, esi
pop ecx
je 0x456dcb
cmp dword [ebp - 0x68], 0
je 0x45647b
dec esi
mov dword [ebp - 0x64], esi
jmp 0x45647b
mov ebx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x68]
add ebx, 0x40
mov word [ebx + 0x18], 4
jmp 0x456380
test byte [ebx + 0x18], 1
lea edi, [ebx - 0x40]
je 0x456ded
push 2
pop ebx
jmp 0x456e02
push ebx
call fcn.0044a112
mov eax, dword [ebx]
or eax, dword [ebx + 4]
pop ecx
jne 0x456e00
xor ebx, ebx
inc ebx
jmp 0x456e02
xor ebx, ebx
test byte [edi + 0x18], 1
je 0x456e0d
push 2
pop eax
jmp 0x456e22
push edi
call fcn.0044a112
mov eax, dword [edi]
or eax, dword [edi + 4]
pop ecx
jne 0x456e20
xor eax, eax
inc eax
jmp 0x456e22
xor eax, eax
imul ebx, ebx, 3
cmp byte [esi], 0x3c
jne 0x456e34
movzx esi, byte [ebx + eax + 0x49184c]
jmp 0x456e3c
movzx esi, byte [ebx + eax + 0x491858]
push 2
lea edi, [ebp - 0x50]
call fcn.004560fa
mov ebx, dword [ebp - 0x50]
add ebx, 0x40
cmp esi, 2
pop ecx
mov dword [ebp - 0x50], ebx
je 0x456831
xor eax, eax
test esi, esi
sete al
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x456acd
movzx eax, word [ebx + 0x18]
test al, 8
jne 0x456ebc
test al, 4
je 0x456ead
test al, 0x40
je 0x456e82
push ebx
call fcn.00449fca
pop ecx
cmp byte [esi], 0x53
je 0x456e9c
cmp dword [ebx + 4], 0
jg 0x456acd
jl 0x456e9c
cmp dword [ebx], 0
jae 0x456acd
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
neg eax
adc ecx, 0
neg ecx
jmp 0x456f3d
test al, 1
jne case.0x45631c.11
push ebx
call fcn.0044a157
pop ecx
test byte [ebx + 0x18], 0x40
je 0x456ec9
push ebx
call fcn.00449fca
pop ecx
cmp byte [esi], 0x53
je 0x456ede
fild qword [ebx + 8]
fcomp qword [0x48c9f0]
fnstsw ax
test ah, 5
jp 0x456ef1
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
neg eax
adc ecx, 0
neg ecx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
mov word [ebx + 0x18], 8
jmp case.0x45631c.11
test byte [ebx + 0x18], 1
jne case.0x45631c.11
push ebx
call fcn.0044a112
mov eax, dword [ebx]
or eax, dword [ebx + 4]
pop ecx
jne 0x456f1c
xor eax, eax
inc eax
jmp 0x456e60
xor eax, eax
jmp 0x456e60
test byte [ebx + 0x18], 1
jne case.0x45631c.11
push ebx
call fcn.0044a112
mov eax, dword [ebx]
pop ecx
mov ecx, dword [ebx + 4]
not eax
not ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x456acd
test byte [ebx + 0x18], 1
je 0x456f52
mov edi, dword [esi + 4]
jmp 0x456f69
push ebx
call fcn.0044a015
cmp byte [esi], 0x48
pop ecx
mov edi, eax
jne 0x456f69
xor eax, eax
test edi, edi
sete al
mov edi, eax
test byte [ebx + 0x18], 0x40
je 0x456f76
push ebx
call fcn.00449fca
pop ecx
sub ebx, 0x40
test edi, edi
mov dword [ebp - 0x50], ebx
je case.0x45631c.11
jmp 0x456330
mov edi, dword [esi + 4]
mov ecx, edi
test ecx, ecx
jge 0x456f94
neg ecx
mov edx, ecx
shl edx, 6
mov eax, ebx
sub eax, edx
add eax, 0x40
xor edx, edx
test ecx, ecx
jle 0x456fbf
add eax, 0x18
test byte [eax], 1
jne 0x456fb8
inc edx
add eax, 0x40
cmp edx, ecx
jl 0x456fa9
jmp 0x456fbf
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x64], esi
test edi, edi
jle case.0x45631c.11
push ecx
jmp 0x456472
mov ecx, dword [esi + 4]
test ecx, ecx
mov dword [ebp - 0x54], ecx
jge 0x456fd9
neg ecx
xor edx, edx
test ecx, ecx
jle 0x456ffc
mov edi, ecx
shl edi, 6
mov eax, ebx
sub eax, edi
add eax, 0x58
test byte [eax], 1
jne 0x456ff8
inc edx
add eax, 0x40
cmp edx, ecx
jl 0x456feb
cmp edx, ecx
jl 0x457003
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x64], esi
cmp dword [ebp - 0x54], 0
jmp 0x456fc1
mov ecx, dword [edi + 0x3c]
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 8]
mov dword [eax + 0x50], ecx
jmp case.0x45631c.11
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
xor edx, edx
add ebx, 0x40
mov word [ebp + 0x28], dx
mov word [ebx + 0x18], 1
mov dword [ebp - 0x9c], ecx
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + eax*4]
cmp dword [eax], edx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x58], eax
je 0x4570d5
push eax
call fcn.004540ad
test eax, eax
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x458ead
and dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x1c], 0
mov ecx, dword [eax]
mov dword [ebp - 0x68], ecx
je 0x457078
and dword [ebp - 0x98], 0
jmp 0x4570c8
mov ecx, dword [eax + 0x60]
cmp ecx, dword [edi + 0x60]
jne 0x457091
mov ecx, dword [eax + 0x64]
mov dword [ebp - 0x98], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x78], ecx
jmp 0x4570c8
cmp byte [eax + 0x21], 0
je 0x4570b4
lea eax, [ebp - 0x16c]
push eax
push dword [ebp - 0x68]
call fcn.00451b7c
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x98], eax
jmp 0x4570c3
lea eax, [ebp - 0x98]
push eax
push dword [ebp - 0x68]
call fcn.00451bc8
mov eax, dword [ebp - 0x58]
pop ecx
pop ecx
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x58]
xor edx, edx
jmp 0x457104
cmp byte [eax + 0x1e], 0
mov dword [ebp - 0x68], edx
je 0x4570f8
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x98], ecx
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x78], ecx
mov ecx, dword [eax + 0x50]
mov dword [eax + 0x60], edx
mov dword [ebp - 0x6c], ecx
jmp 0x457104
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x6c], edx
cmp dword [ebp - 0x98], edx
je case.0x45631c.11
mov ecx, dword [eax + 0x60]
cmp ecx, dword [edi + 0x60]
jne 0x457126
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0x54], ecx
jmp 0x4572de
mov eax, dword [eax + 0x68]
cmp eax, edx
mov dword [ebp - 0x54], eax
jne 0x457151
mov eax, dword [ebp - 0x6c]
shl eax, 3
push 1
push eax
call fcn.00449c00
test eax, eax
pop ecx
pop ecx
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x54], eax
mov dword [ecx + 0x68], eax
je 0x4564c7
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x6c]
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xbc], ecx
mov dword [eax + 0x6c], ecx
mov ecx, dword [ebp - 0x98]
mov dword [eax + 0x64], ecx
mov ecx, dword [edi + 0x60]
mov edi, dword [ebp - 0x78]
test edi, edi
mov dword [eax + 0x60], ecx
jne 0x4571b9
cmp byte [eax + 0x21], 0
lea eax, [ebp - 0xe8]
push eax
push dword [ebp - 0x68]
je 0x457193
call fcn.0044f211
jmp 0x457198
call fcn.0044f22f
mov edi, eax
mov eax, dword [ebp - 0xe8]
cmp eax, dword [ebp - 0x98]
mov eax, dword [ebp - 0x58]
pop ecx
pop ecx
jb 0x4571b5
mov dword [ebp - 0x78], edi
mov dword [eax + 0x70], edi
jmp 0x4571b9
and dword [eax + 0x70], 0
movzx eax, byte [edi]
cmp eax, 0x7f
mov dword [ebp - 0xa0], eax
ja 0x4571d0
mov dword [ebp - 0x60], 1
jmp 0x4571e2
lea eax, [ebp - 0xa0]
push eax
push edi
call fcn.00449b35
pop ecx
pop ecx
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x78], 0
jne 0x45721e
mov eax, dword [ebp - 0xa0]
cmp dword [ebp - 0xe8], eax
jae 0x45721e
lea ecx, [ebp + 0x10]
push ecx
mov ecx, dword [ebp - 0x58]
movzx ecx, byte [ecx + 0x21]
push ecx
push eax
push 0
push dword [ebp - 0x68]
call fcn.0044a330
add esp, 0x14
test eax, eax
mov dword [ebp - 0x4c], eax
jne case.0x45631c.11
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp - 0xa0]
add eax, edi
cmp dword [ebp - 0x6c], 0
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x60]
lea ecx, [eax + edi]
mov dword [ebp - 0x4c], ecx
jbe 0x45729f
mov edi, dword [ebp - 0x54]
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x6c]
sub eax, edi
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x60], edx
cmp ecx, dword [ebp - 0x90]
jae 0x457293
mov edx, dword [ebp - 0xa0]
mov dword [eax + edi], edx
movzx eax, byte [ecx]
cmp eax, 0x7f
mov dword [edi], eax
ja 0x45726f
xor eax, eax
inc eax
jmp 0x45727a
push edi
push dword [ebp - 0x4c]
call fcn.00449b35
pop ecx
pop ecx
push dword [edi]
add dword [ebp - 0x4c], eax
call fcn.004541ef
add dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x70]
pop ecx
mov ecx, dword [ebp - 0x4c]
jmp 0x457297
and dword [eax + edi], 0
add edi, 4
dec dword [ebp - 0x60]
jne 0x45724f
test byte [ebp + 0x28], 0x40
je 0x4572b2
lea eax, [ebp + 0x10]
push eax
call fcn.00449fca
pop ecx
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x90]
mov word [ebp + 0x28], 1
ja 0x45738e
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0x98]
ja 0x45738e
mov eax, dword [ebp - 0xbc]
xor edx, edx
mov edi, dword [ebp - 0x9c]
shl edi, 2
add eax, edi
mov dword [ebp - 0x70], eax
mov eax, dword [eax]
cmp eax, edx
je 0x45734e
mov ecx, dword [ebp - 0x78]
cmp ecx, edx
je 0x4572fd
add eax, ecx
jmp 0x457333
mov eax, dword [ebp - 0x54]
push dword [eax + edi]
call fcn.004541ef
lea ecx, [ebp + 0x10]
push ecx
mov ecx, dword [ebp - 0x58]
movzx ecx, byte [ecx + 0x21]
push ecx
push eax
mov eax, dword [ebp - 0x70]
push dword [eax]
push dword [ebp - 0x68]
call fcn.0044a330
add esp, 0x18
test eax, eax
mov dword [ebp - 0x4c], eax
jne case.0x45631c.11
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x54]
push ebx
push dword [ecx + edi]
push eax
call fcn.0045427c
mov al, byte [ebp - 0x88]
add esp, 0xc
mov byte [ebx + 0x1b], al
jmp 0x45736d
cmp dword [esi + 0x10], 0xfffffff8
jne 0x457367
push 0x80
push dword [esi + 0xc]
push ebx
call fcn.0044a1d5
add esp, 0xc
jmp 0x45736d
mov word [ebx + 0x18], 1
test byte [ebp + 0x28], 0x40
je 0x457383
mov ax, word [ebx + 0x18]
and ax, 0xfeff
or ax, 0x60
mov word [ebx + 0x18], ax
push ebx
call fcn.00449e13
jmp 0x45765a
mov dword [ebp - 0x4c], 0xb
jmp case.0x45631c.11
mov eax, dword [esi + 4]
xor ecx, ecx
xor edx, edx
cmp eax, ecx
setl dl
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x6c], ecx
test edx, edx
sete cl
mov dword [ebp - 0x108], edx
lea ecx, [ecx + ecx - 1]
imul ecx, eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x8c], eax
xor eax, eax
cmp byte [esi], 0x33
mov dword [ebp - 0x9c], ecx
sete al
and dword [ebp - 0x70], 0
mov dword [ebp - 0x90], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xbc], eax
mov eax, ecx
movzx ecx, byte [edi + 0x239]
shl eax, 6
mov esi, ebx
sub esi, eax
lea eax, [esi + 0x40]
cmp eax, ebx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x58], ecx
mov edi, eax
ja 0x457480
mov dword [ebp - 0x78], 0xffffffe8
sub dword [ebp - 0x78], eax
cmp dword [ebp - 0xbc], 0
je 0x457441
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0xbc]
push dword [ebp - 0x88]
lea eax, [edi + eax + 0x18]
sar eax, 6
movzx eax, byte [eax + ecx]
push eax
mov eax, edi
call fcn.004561c9
pop ecx
pop ecx
test byte [edi + 0x18], 1
je 0x45744e
mov dword [ebp - 0x70], 1
push dword [ebp - 0x58]
push edi
call fcn.00454125
push eax
mov dword [ebp - 0xb4], eax
call fcn.004541ef
add dword [ebp - 0x54], eax
push 0
push dword [ebp - 0xb4]
call fcn.00449b95
add dword [ebp - 0x6c], eax
add edi, 0x40
add esp, 0x14
cmp edi, ebx
jbe 0x457414
cmp dword [ebp - 0x90], 0
je 0x4574b7
push esi
mov dword [ebp - 0x60], esi
call fcn.0044a112
push 0
push esi
call fcn.00454125
mov esi, eax
push esi
call fcn.004541ef
add dword [ebp - 0x54], eax
push 0
push esi
call fcn.00449b95
mov esi, dword [ebp - 0x6c]
add esp, 0x18
add esi, eax
jmp 0x4574ba
mov esi, dword [ebp - 0x6c]
mov eax, esi
cdq
push edx
push eax
call fcn.00449b95
mov edi, eax
add esi, edi
mov eax, esi
cdq
push edx
push eax
call fcn.00449b95
add esp, 0x10
cmp edi, eax
jge 0x4574da
inc esi
mov eax, dword [ebp - 0x54]
add eax, esi
cmp eax, 0x20
mov dword [ebp - 0xb4], eax
jbe 0x457501
push 1
push eax
call fcn.00449c00
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
je 0x4564c7
jmp 0x457507
lea eax, [ebp + 0x50]
mov dword [ebp - 0x54], eax
mov eax, esi
cdq
push edx
push eax
push dword [ebp - 0x54]
call fcn.004499db
mov esi, dword [ebp - 0x68]
mov edi, eax
add edi, dword [ebp - 0x54]
add esp, 0xc
cmp esi, ebx
ja 0x457541
push dword [ebp - 0x58]
push esi
call fcn.00454125
push 0
push eax
push edi
call fcn.004499db
add esi, 0x40
add esp, 0x14
add edi, eax
cmp esi, ebx
jbe 0x457523
xor esi, esi
cmp dword [ebp - 0x90], esi
je 0x457561
push esi
push dword [ebp - 0x60]
call fcn.00454125
push esi
push eax
push edi
call fcn.004499db
add esp, 0x14
add edi, eax
mov esi, dword [ebp - 0x68]
jmp 0x457578
push dword [ebp - 0x58]
push esi
push edi
call fcn.00454206
add esp, 0xc
add edi, eax
add esi, 0x40
cmp esi, ebx
jbe 0x457566
mov esi, dword [ebp - 0x90]
test esi, esi
je 0x457594
push 0
push dword [ebp - 0x60]
push edi
call fcn.00454206
add esp, 0xc
cmp dword [ebp - 0x108], 0
jne 0x4575b2
mov eax, dword [ebp - 0x9c]
add esi, eax
push esi
lea edi, [ebp - 0x50]
call fcn.004560fa
mov ebx, dword [ebp - 0x50]
pop ecx
mov ecx, dword [ebp - 0xb4]
add ebx, 0x40
cmp ecx, 0x20
mov dword [ebp - 0x50], ebx
mov dword [ebx + 0x14], ecx
ja 0x4575e2
push ecx
lea ecx, [ebp + 0x50]
lea eax, [ebx + 0x20]
push ecx
push eax
mov dword [ebx + 0x10], eax
call fcn.00480466
add esp, 0xc
mov word [ebx + 0x18], 0x210
jmp 0x4575f2
mov eax, dword [ebp - 0x54]
mov dword [ebx + 0x10], eax
mov word [ebx + 0x18], 0x50
and dword [ebx + 0x1c], 0
mov eax, dword [ebp - 0x8c]
test eax, eax
mov byte [ebx + 0x1b], 1
je case.0x45631c.11
cmp dword [ebp - 0x70], 0
je case.0x45631c.11
jmp 0x456351
mov esi, dword [esi + 4]
test esi, esi
jl case.0x45631c.11
mov eax, dword [ebp - 0x5c]
cmp esi, dword [eax]
jge case.0x45631c.11
mov ecx, dword [eax + 4]
imul esi, esi, 0x18
mov esi, dword [esi + ecx + 4]
test esi, esi
je case.0x45631c.11
cmp byte [eax + 0x10], 0
jne case.0x45631c.11
push esi
call fcn.00451723
test eax, eax
pop ecx
jne case.0x45631c.11
push esi
call fcn.0044ef8f
pop ecx
mov dword [ebp - 0x4c], eax
jmp case.0x45631c.11
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x4c], 1
mov cl, byte [esi + 4]
mov dl, byte [esi + 8]
mov byte [ebp - 0x71], cl
jle 0x4576ab
test cl, cl
je 0x4576ab
cmp byte [eax + 0x10], 0
jne 0x4576ab
test dl, dl
mov eax, str.rollback
jne 0x45768d
mov eax, 0x491978
push 0
push 0x49194c
push eax
push 0x491944
add edi, 0x230
push edi
call fcn.00449cc2
add esp, 0x14
jmp 0x4576df
cmp cl, byte [eax + 0x10]
jne 0x459078
test cl, cl
jne 0x4576bf
mov eax, 0x491914
jmp 0x4576cd
test dl, dl
mov eax, str._b3E_bf
jne 0x4576cd
mov eax, 0x4918bc
push 0
push eax
add edi, 0x230
push edi
call fcn.00449cc2
add esp, 0xc
mov dword [ebp - 0x4c], 1
jmp case.0x45631c.11
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x5c]
imul eax, eax, 0x18
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx + 4]
test eax, eax
je case.0x45631c.11
push dword [esi + 8]
push eax
call fcn.0044ec03
pop ecx
pop ecx
push 5
pop ecx
cmp eax, ecx
mov dword [ebp - 0x4c], eax
je 0x4590c8
test eax, eax
je case.0x45631c.11
cmp eax, 8
jne 0x458ead
jmp case.0x45631c.11
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 4]
lea eax, [ebp - 0x13c]
push eax
mov eax, dword [esi + 8]
inc eax
push eax
mov eax, dword [esi + 4]
imul eax, eax, 0x18
push dword [eax + ecx + 4]
call fcn.00450fd1
add esp, 0xc
add ebx, 0x40
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x50], ebx
jmp 0x456e60
mov edi, dword [esi + 4]
mov eax, dword [ebp - 0x5c]
imul edi, edi, 0x18
add edi, dword [eax + 4]
push ebx
call fcn.0044a112
push dword [ebx]
mov eax, dword [esi + 8]
inc eax
push eax
push dword [edi + 4]
call fcn.00451025
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 8]
add esp, 0x10
test eax, eax
jne 0x4577a8
mov eax, dword [edi + 0x14]
mov ecx, dword [ebx]
mov dword [eax], ecx
mov eax, dword [ebp - 0x5c]
or dword [eax + 8], 0x10
jmp 0x4577b5
cmp eax, 1
jne 0x4577b5
mov eax, dword [edi + 0x14]
mov cl, byte [ebx]
mov byte [eax + 0x78], cl
sub ebx, 0x40
cmp dword [esi + 4], 1
mov dword [ebp - 0x50], ebx
jne case.0x45631c.11
push dword [ebp - 0x5c]
call fcn.004547d2
jmp 0x4568dc
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x5c]
imul eax, eax, 0x18
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx + 4]
test eax, eax
je 0x4577fd
lea ecx, [ebp - 0x118]
push ecx
push 1
push eax
call fcn.00450fd1
add esp, 0xc
mov dword [ebp - 0x4c], eax
jmp 0x457808
and dword [ebp - 0x4c], 0
and dword [ebp - 0x118], 0
cmp dword [ebp - 0x4c], 0
jne case.0x45631c.11
mov eax, dword [ebp - 0x118]
cmp eax, dword [esi + 8]
je case.0x45631c.11
push 0
push 0x4904b8
add edi, 0x230
push edi
call fcn.00449cc2
add esp, 0xc
mov dword [ebp - 0x4c], 0x11
jmp case.0x45631c.11
mov eax, dword [esi + 4]
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + 8]
push ebx
mov dword [ebp - 0x60], eax
call fcn.0044a112
mov eax, dword [ebx]
mov dword [ebp - 0x8c], eax
imul eax, eax, 0x18
pop ecx
mov ecx, dword [ebp - 0x5c]
add eax, dword [ecx + 4]
sub ebx, 0x40
cmp byte [esi], 8
mov ecx, dword [eax + 4]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x9c], ecx
jne 0x457899
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x78]
lea ecx, [edi + 0x239]
cmp al, byte [ecx]
mov dword [ebp - 0x70], 1
jae 0x45789d
mov byte [ecx], al
jmp 0x45789d
and dword [ebp - 0x70], 0
cmp dword [ebp - 0x60], 0
jg 0x4578b5
push ebx
call fcn.0044a112
mov eax, dword [ebx]
sub ebx, 0x40
pop ecx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x50], ebx
push dword [ebp - 0x8c]
mov eax, dword [ebp - 0xb4]
call fcn.0045611e
mov edi, eax
test edi, edi
pop ecx
je 0x4564c7
cmp dword [ebp - 0x9c], 0
mov byte [edi + 0x1c], 1
je case.0x45631c.11
push edi
push dword [esi + 0xc]
push fcn.0045442c
push dword [ebp - 0x70]
push dword [ebp - 0x60]
push dword [ebp - 0x9c]
call fcn.00451a39
mov ecx, dword [ebp - 0x7c]
add esp, 0x18
cmp dword [esi + 0x10], 0xfffffffa
mov dword [ebp - 0x4c], eax
jne 0x457927
mov eax, dword [esi + 0xc]
mov dword [edi + 0x4c], eax
mov edx, dword [edi + 0x4c]
inc eax
mov dword [edi + 0x48], eax
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x79]
mov byte [edx], al
jmp 0x457931
and dword [edi + 0x4c], 0
lea eax, [edi + 0x22]
mov dword [edi + 0x48], eax
cmp dword [ebp - 0x4c], 0
je 0x457968
push 5
pop eax
cmp dword [ebp - 0x4c], eax
je 0x4590d8
cmp dword [ebp - 0x4c], 0x10
jne 0x458ead
cmp dword [esi + 0x10], 0xfffffffa
setne al
test al, al
mov byte [edi + 0x20], al
sete al
and dword [ebp - 0x4c], 0
mov byte [edi + 0x21], al
jmp case.0x45631c.11
push dword [edi]
call fcn.00451065
test al, 0xf0
pop ecx
jne 0x4579ae
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x457983
cmp ecx, 2
jne 0x4579ae
mov cl, al
shr eax, 1
and cl, 1
and al, 1
test cl, cl
mov byte [edi + 0x20], cl
mov byte [edi + 0x21], al
je 0x45799c
cmp dword [esi + 0x10], 0xfffffffa
je 0x4579ae
test al, al
je case.0x45631c.11
cmp dword [esi + 0x10], 0xfffffffa
je case.0x45631c.11
mov dword [ebp - 0x4c], 0xb
jmp 0x458ead
mov eax, dword [esi + 4]
push 0xffffffffffffffff
call fcn.0045611e
mov edi, eax
test edi, edi
pop ecx
je 0x4564c7
lea eax, [edi + 0x30]
push eax
push 0x1f4
push 1
push 0
push dword [ebp - 0x5c]
mov byte [edi + 0x1c], 1
call fcn.00448553
add esp, 0x14
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x457a90
push 1
push dword [edi + 0x30]
call fcn.0044ec03
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x457a90
cmp dword [esi + 0xc], eax
je 0x457a6f
push 2
lea eax, [ebp - 0x130]
push eax
push dword [edi + 0x30]
call fcn.00451dd6
add esp, 0xc
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x457a69
push edi
push dword [esi + 0xc]
push fcn.0045442c
push 1
push dword [ebp - 0x130]
push dword [edi + 0x30]
call fcn.00451a39
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0x4c], eax
mov ecx, dword [ecx]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x14]
mov cl, byte [ecx + 0x79]
mov byte [eax], cl
mov eax, dword [edi + 0x4c]
add esp, 0x18
inc eax
mov dword [edi + 0x48], eax
mov byte [edi + 0x20], 0
jmp 0x457a90
push edi
push 0
push 0
push 1
push 1
push dword [edi + 0x30]
call fcn.00451a39
mov dword [ebp - 0x4c], eax
lea eax, [edi + 0x22]
add esp, 0x18
mov byte [edi + 0x20], 1
mov dword [edi + 0x48], eax
mov eax, dword [esi + 8]
cmp byte [edi + 0x20], 0
mov dword [edi + 0x50], eax
sete al
mov byte [edi + 0x21], al
jmp case.0x45631c.11
mov eax, dword [esi + 4]
push 0xffffffffffffffff
call fcn.0045611e
test eax, eax
pop ecx
je 0x4564c7
lea ecx, [eax + 0x22]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x1e], 1
mov dword [eax + 0x48], ecx
mov byte [eax + 0x20], 1
mov byte [eax + 0x21], 0
jmp case.0x45631c.11
mov esi, dword [esi + 4]
test esi, esi
jl case.0x45631c.11
cmp esi, dword [edi + 0x38]
jge case.0x45631c.11
mov eax, dword [edi + 0x3c]
shl esi, 2
push dword [eax + esi]
call fcn.00453b51
mov eax, dword [edi + 0x3c]
and dword [esi + eax], 0
pop ecx
jmp case.0x45631c.11
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x3c]
mov edi, dword [edx + ecx*4]
cmp dword [edi], 0
je 0x457c44
cmp eax, 6
mov byte [edi + 0x1c], 0
je 0x457b26
cmp eax, 0x3f
je 0x457b26
xor eax, eax
jmp 0x457b29
xor eax, eax
inc eax
mov ecx, dword [edi + 0x48]
mov byte [ecx], al
cmp byte [edi + 0x20], 0
je 0x457b94
push ebx
call fcn.0044a112
cmp dword [esi + 8], 0
mov eax, dword [ebx]
pop ecx
mov ecx, dword [ebx + 4]
jne 0x457b5a
cmp byte [esi], 0x78
jne 0x457b5a
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ecx
mov byte [edi + 0x1f], 1
jmp 0x4565ae
lea edx, [ebp - 0x94]
push edx
push ecx
push eax
push 0
push dword [edi]
call fcn.0044f464
add esp, 0x14
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x458ead
mov eax, dword [ebx]
cmp dword [ebp - 0x94], 0
mov dword [edi + 8], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0xc], eax
sete al
mov byte [edi + 0x19], al
jmp 0x457bbc
lea eax, [ebp - 0x94]
push eax
mov eax, dword [ebx + 0x14]
cdq
push edx
push eax
push dword [ebx + 0x10]
push dword [edi]
call fcn.0044f464
add esp, 0x14
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x458ead
mov byte [edi + 0x19], al
mov ecx, dword [edi + 0x48]
xor eax, eax
mov byte [edi + 0x1f], 0
mov dword [edi + 0x60], eax
mov byte [ecx], al
inc dword [0x4a9a9c]
cmp dword [ebp - 0x60], 0x78
je 0x457c18
cmp dword [ebp - 0x60], 6
je 0x457c18
cmp dword [ebp - 0x94], eax
jl 0x457bf4
lea eax, [ebp - 0x94]
push eax
push dword [edi]
call fcn.00451d22
jmp 0x457c2e
push dword [edi]
call fcn.0044f6b2
pop ecx
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
je 0x457c44
mov esi, dword [esi + 8]
test esi, esi
jle 0x457c40
dec esi
mov dword [ebp - 0x64], esi
jmp 0x457c44
cmp dword [ebp - 0x94], eax
jge 0x457bfc
lea eax, [ebp - 0x94]
push eax
push dword [edi]
call fcn.00451c42
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x458ead
mov byte [edi + 0x19], al
jmp 0x457c02
mov byte [edi + 0x1c], 1
test byte [ebx + 0x18], 0x40
je 0x4565ae
push ebx
call fcn.00449fca
jmp 0x4565ad
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x3c]
mov edi, dword [edx + ecx*4]
xor eax, eax
cmp dword [edi], eax
je 0x457cb9
test byte [ebx + 0x18], 0x12
jne 0x457c86
movzx eax, byte [ebp - 0x88]
push eax
push ebx
call fcn.00449eef
test eax, eax
pop ecx
pop ecx
jne 0x4564c7
lea eax, [ebp - 0x124]
push eax
mov eax, dword [ebx + 0x14]
cdq
push edx
push eax
push dword [ebx + 0x10]
push dword [edi]
call fcn.0044f464
add esp, 0x14
test eax, eax
jne 0x457caf
cmp dword [ebp - 0x124], eax
jne 0x457caf
inc eax
jmp 0x457cb1
xor eax, eax
and dword [edi + 0x60], 0
mov byte [edi + 0x1f], 0
mov cl, byte [esi]
cmp cl, 0x7b
jne 0x457cc6
test eax, eax
je 0x457cd1
jmp 0x457cca
test eax, eax
jne 0x457cd1
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x64], esi
cmp cl, 0x6a
je case.0x45631c.11
jmp 0x457c44
mov eax, dword [esi + 4]
mov dword [ebp - 0x8c], eax
lea eax, [ebx - 0x40]
push ebx
mov dword [ebp - 0x58], eax
call fcn.0044a112
mov eax, dword [ebx]
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x134], eax
mov eax, dword [edi + 0x3c]
pop ecx
mov ecx, dword [ebp - 0x8c]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi]
test eax, eax
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x60], eax
je case.0x45631c.11
mov eax, ebx
test byte [eax + 0x18], 0x12
jne 0x457d45
movzx eax, byte [ebp - 0x88]
push eax
push ebx
call fcn.00449eef
test eax, eax
pop ecx
pop ecx
jne 0x4564c7
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
push ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x8c], eax
call fcn.00454634
mov ecx, dword [ebp - 0x8c]
and dword [edi + 0x60], 0
sub ecx, eax
lea eax, [ebp - 0xb8]
push eax
mov eax, ecx
cdq
push edx
push eax
push dword [ebp - 0x70]
mov dword [ebp - 0x8c], ecx
push dword [ebp - 0x60]
call fcn.0044f464
add esp, 0x18
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x458ead
cmp dword [ebp - 0xb8], eax
jge 0x457dbd
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0x60]
call fcn.00451c42
cmp dword [ebp - 0xb8], 0
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x456330
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0x70]
push dword [ebp - 0x8c]
push edi
call fcn.00454728
add esp, 0x10
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x458ead
cmp dword [ebp - 0xb8], eax
jg 0x456330
lea eax, [ebp - 0x12c]
push eax
push dword [ebp - 0x60]
call fcn.00454665
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x458ead
mov eax, dword [ebp - 0x12c]
cmp eax, dword [ebp - 0x138]
jne 0x457e29
mov ecx, dword [ebp - 0x128]
cmp ecx, dword [ebp - 0x134]
je 0x456330
add ebx, 0x40
mov dword [ebx], eax
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x50], ebx
jmp 0x456aca
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi]
test eax, eax
je 0x457c44
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
lea edx, [ebp - 0x114]
push edx
push ecx
push eax
push 0
push dword [edi]
call fcn.0044f464
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx]
mov dword [edi + 8], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0xc], eax
xor eax, eax
add esp, 0x14
cmp dword [ebp - 0x114], eax
mov byte [edi + 0x1c], al
sete cl
cmp dword [ebp - 0x114], eax
mov byte [edi + 0x19], cl
mov dword [edi + 0x60], eax
je 0x457c44
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x64], esi
mov byte [edi + 0x19], al
jmp 0x457c44
mov esi, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov eax, esi
shl eax, 2
mov ecx, dword [ecx + eax]
mov edx, dword [ecx + 0x58]
add ebx, 0x40
mov dword [ebx], edx
mov ecx, dword [ecx + 0x5c]
mov dword [ebx + 4], ecx
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + eax]
add dword [eax + 0x58], 1
mov dword [ebp - 0x50], ebx
adc dword [eax + 0x5c], 0
jmp 0x456acd
and dword [ebp - 0x84], 0
and dword [ebp - 0x80], 0
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x58], eax
mov eax, dword [eax]
test eax, eax
je 0x458132
and dword [ebp - 0x60], 0
push eax
call fcn.00451065
and al, 3
cmp al, 1
pop ecx
jne 0x4579ae
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x1b], 0
jne 0x45804b
cmp byte [eax + 0x1d], 0
je 0x457f32
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x84], ecx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x80], eax
jmp 0x457fa0
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0x58]
push dword [eax]
call fcn.0044f435
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x458ead
cmp dword [ebp - 0xc4], eax
je 0x457f67
and dword [ebp - 0x80], eax
mov dword [ebp - 0x84], 1
jmp 0x457fa0
lea eax, [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x58]
push dword [eax]
call fcn.00451b7c
cmp dword [ebp - 0x84], 0xffffffff
pop ecx
pop ecx
jne 0x457f95
cmp dword [ebp - 0x80], 0x7fffffff
jne 0x457f95
mov eax, dword [ebp - 0x58]
mov byte [eax + 0x1b], 1
jmp 0x457fa0
add dword [ebp - 0x84], 1
adc dword [ebp - 0x80], 0
mov esi, dword [esi + 8]
test esi, esi
je 0x458005
shl esi, 6
add esi, dword [edi + 0x58]
push esi
call fcn.0044a112
mov eax, dword [esi]
cmp eax, 0xffffffff
pop ecx
mov ecx, dword [esi + 4]
jne 0x457fca
cmp ecx, 0x7fffffff
je 0x4590fa
mov edx, dword [ebp - 0x58]
cmp byte [edx + 0x1b], 0
jne 0x4590fa
mov edx, dword [ebp - 0x80]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x457ff7
jl 0x457fee
cmp dword [ebp - 0x84], eax
jae 0x457ff7
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp - 0x84]
mov dword [esi], eax
mov eax, dword [ebp - 0x80]
mov dword [esi + 4], eax
cmp dword [ebp - 0x80], 0x7fffffff
ja 0x458037
jb 0x458019
cmp dword [ebp - 0x84], 0xffffffff
jae 0x458037
mov eax, dword [ebp - 0x58]
mov byte [eax + 0x1d], 1
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
add ecx, 1
adc edx, 0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp 0x45803e
mov eax, dword [ebp - 0x58]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x1b], 0
je 0x458123
mov esi, dword [ebp - 0x5c]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], ecx
xor edi, edi
jmp 0x458067
mov eax, dword [ebp - 0x84]
or eax, dword [ebp - 0x80]
je 0x458095
cmp edi, 2
jg 0x458095
lea eax, [ebp - 0xa1]
push eax
push 1
call fcn.0046456d
movzx eax, byte [ebp - 0xa1]
inc eax
cdq
add dword [ebp - 0x84], eax
pop ecx
pop ecx
adc dword [ebp - 0x80], edx
jmp 0x4580b8
lea eax, [ebp - 0x84]
push eax
push 8
call fcn.0046456d
cmp edi, 5
pop ecx
pop ecx
jge 0x4580b8
and dword [ebp - 0x84], 0xffffff
and dword [ebp - 0x80], 0
mov eax, dword [ebp - 0x84]
or eax, dword [ebp - 0x80]
je 0x4580e6
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 0x80]
mov eax, dword [ebp - 0x58]
push dword [ebp - 0x84]
push 0
push dword [eax]
call fcn.0044f464
add esp, 0x14
mov dword [ebp - 0x60], eax
inc edi
cmp edi, 0x3e8
jge 0x458101
cmp dword [ebp - 0x60], 0
jne 0x458101
cmp dword [ebp - 0xc4], 0
je 0x458061
cmp dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x84]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x80]
mov dword [esi + 0x2c], eax
jne 0x458123
cmp dword [ebp - 0xc4], 0
je 0x4590fa
mov eax, dword [ebp - 0x58]
and dword [eax + 0x60], 0
mov byte [eax + 0x19], 0
mov byte [eax + 0x1f], 0
mov eax, dword [ebp - 0x84]
add ebx, 0x40
mov dword [ebx], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x50], ebx
jmp 0x456aca
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + eax*4]
xor edx, edx
cmp dword [eax], edx
mov dword [ebp - 0x60], eax
jne 0x458163
cmp byte [eax + 0x1e], dl
je 0x4582bd
test byte [esi + 8], 1
mov ecx, dword [ebx - 0x40]
mov dword [ebp - 0xdc], ecx
mov ecx, dword [ebx - 0x3c]
mov dword [ebp - 0xd8], ecx
je 0x458181
inc dword [edi + 0x23c]
test byte [esi + 8], 2
je 0x458196
mov edi, dword [ebx - 0x40]
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 0x20], edi
mov edi, dword [ebx - 0x3c]
mov dword [ecx + 0x24], edi
cmp byte [eax + 0x1d], 0
je 0x4581b2
mov ecx, dword [ebx - 0x3c]
cmp ecx, dword [eax + 0x14]
jl 0x4581b2
jg 0x4581ae
mov ecx, dword [ebx - 0x40]
cmp ecx, dword [eax + 0x10]
jb 0x4581b2
mov byte [eax + 0x1d], 0
test byte [ebx + 0x18], 1
je 0x4581be
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], edx
cmp byte [eax + 0x1e], 0
je 0x45823e
mov edi, dword [ebp - 0x60]
push dword [edi + 0x38]
call fcn.0044954f
mov eax, dword [ebp - 0xdc]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0xd8]
mov dword [edi + 0x44], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x34], eax
test byte [ebx + 0x18], 0x40
pop ecx
je 0x4581fc
mov eax, dword [ebx + 0x10]
mov dword [edi + 0x38], eax
mov word [ebx + 0x18], 1
jmp 0x458238
add eax, 2
push 1
push eax
call fcn.00449c00
test eax, eax
pop ecx
pop ecx
mov dword [edi + 0x38], eax
je 0x4564c7
push dword [edi + 0x34]
push dword [ebx + 0x10]
push eax
call fcn.00480466
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
mov byte [eax + ecx], 0
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
add esp, 0xc
mov byte [eax + ecx + 1], 0
mov byte [edi + 0x1c], 0
jmp 0x458265
push dword [ebx + 0x14]
mov eax, dword [ebp - 0x60]
push dword [ebx + 0x10]
push dword [ebp - 0xd8]
push dword [ebp - 0xdc]
push 0
push dword [eax]
call fcn.0045233c
mov edi, dword [ebp - 0x60]
add esp, 0x18
mov dword [ebp - 0x4c], eax
and dword [edi + 0x60], 0
cmp dword [ebp - 0x4c], 0
mov byte [edi + 0x19], 0
mov byte [edi + 0x1f], 0
jne 0x4582bd
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 0x74]
test ecx, ecx
je 0x4582bd
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4582bd
push dword [ebp - 0xd8]
mov edx, dword [edi + 4]
push dword [ebp - 0xdc]
imul edx, edx, 0x18
push eax
mov eax, dword [ebp - 0x5c]
mov edi, dword [eax + 4]
push dword [edx + edi]
mov edx, dword [esi + 8]
and dl, 4
neg dl
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push dword [eax + 0x70]
call ecx
add esp, 0x18
push 2
jmp 0x456472
mov ecx, dword [edi + 0x3c]
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x54], eax
je 0x458394
mov edx, dword [ebp - 0x5c]
cmp dword [edx + 0x74], 0
je 0x45831d
cmp dword [esi + 0xc], 0
je 0x45831d
cmp byte [eax + 0x19], 0
je 0x458303
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x11c], eax
jmp 0x45831d
lea eax, [ebp - 0x120]
push eax
push ecx
call fcn.00451b7c
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x458ead
push dword [ebp - 0x54]
call fcn.004540ad
test eax, eax
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x458ead
mov eax, dword [ebp - 0x54]
push dword [eax]
call fcn.004524cf
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x54]
and dword [eax + 0x60], 0
cmp dword [ebp - 0x4c], 0
pop ecx
mov byte [eax + 0x1d], 0
jne 0x458394
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x74]
test eax, eax
mov dword [ebp - 0x8c], eax
je 0x458394
mov eax, dword [esi + 0xc]
test eax, eax
je 0x458394
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
push eax
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x5c]
imul ecx, ecx, 0x18
mov edx, dword [eax + 4]
push dword [ecx + edx]
push 9
push dword [eax + 0x70]
call dword [ebp - 0x8c]
add esp, 0x18
test byte [esi + 8], 1
je case.0x45631c.11
inc dword [edi + 0x23c]
jmp case.0x45631c.11
cmp dword [esi + 4], 0
je 0x4583bf
push dword [edi + 0x23c]
push dword [ebp - 0x5c]
call fcn.004547b7
pop ecx
pop ecx
and dword [edi + 0x23c], 0
jmp case.0x45631c.11
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov esi, dword [ecx + eax*4]
add ebx, 0x40
cmp byte [esi + 0x1c], 0
mov dword [ebp - 0x50], ebx
jne 0x4584b4
mov edi, dword [esi]
test edi, edi
je 0x45849a
push esi
call fcn.004540ad
test eax, eax
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x458ead
cmp byte [esi + 0x1c], al
jne 0x456831
cmp byte [esi + 0x21], al
je 0x458429
lea eax, [ebp - 0x164]
push eax
push edi
call fcn.00451b7c
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0xa8], eax
jmp 0x458436
lea eax, [ebp - 0xa8]
push eax
push edi
call fcn.00451bc8
mov eax, dword [ebp - 0xa8]
pop ecx
mov dword [ebx + 0x14], eax
cmp dword [ebp - 0xa8], 0x20
pop ecx
ja 0x458455
mov word [ebx + 0x18], 0x210
lea eax, [ebx + 0x20]
jmp 0x458476
push 1
push dword [ebp - 0xa8]
call fcn.00449c00
test eax, eax
pop ecx
pop ecx
je 0x4564c7
mov word [ebx + 0x18], 0x50
and dword [ebx + 0x1c], 0
push eax
mov dword [ebx + 0x10], eax
cmp byte [esi + 0x21], 0
push dword [ebp - 0xa8]
push 0
push edi
je 0x458490
call fcn.0044f18e
jmp 0x458495
call fcn.00451c0b
add esp, 0x10
jmp 0x4584ba
cmp byte [esi + 0x1e], 0
je 0x4584b4
mov eax, dword [esi + 0x34]
mov dword [ebx + 0x14], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + 0x10], eax
mov word [ebx + 0x18], 0x110
jmp 0x4584ba
mov word [ebx + 0x18], 1
mov byte [ebx + 0x1b], 1
jmp case.0x45631c.11
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov esi, dword [ecx + eax*4]
push esi
call fcn.004540ad
test eax, eax
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x458ead
add ebx, 0x40
cmp byte [esi + 0x19], al
mov dword [ebp - 0x50], ebx
je 0x4584f7
mov eax, dword [esi + 8]
mov dword [ebp - 0x100], eax
mov eax, dword [esi + 0xc]
jmp 0x458509
cmp byte [esi + 0x1e], 0
je 0x458511
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x100], eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0xfc], eax
jmp 0x458534
cmp byte [esi + 0x1c], 0
jne 0x456831
mov esi, dword [esi]
test esi, esi
je 0x456831
lea eax, [ebp - 0x100]
push eax
push esi
call fcn.00451b7c
pop ecx
pop ecx
mov eax, dword [ebp - 0x100]
mov dword [ebx], eax
mov eax, dword [ebp - 0xfc]
jmp 0x456aca
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + eax*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp case.0x45631c.11
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi]
test eax, eax
je 0x458593
lea ecx, [ebp - 0x144]
push ecx
push eax
call fcn.0044f435
and dword [edi + 0x60], 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x144]
pop ecx
pop ecx
mov byte [edi + 0x1c], al
mov byte [edi + 0x1f], 0
test eax, eax
jmp 0x4585fa
mov byte [edi + 0x1c], 0
jmp case.0x45631c.11
inc dword [0x4a9aa4]
dec dword [0x4a9a9c]
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi]
test eax, eax
je 0x4585e0
lea ecx, [ebp - 0xc8]
push ecx
push eax
call fcn.0044f406
cmp dword [ebp - 0xc8], 0
mov dword [ebp - 0x4c], eax
sete al
and dword [edi + 0x60], 0
pop ecx
pop ecx
mov byte [edi + 0x1a], al
mov byte [edi + 0x1f], 0
jmp 0x4585ea
mov dword [ebp - 0xc8], 1
mov al, byte [ebp - 0xc8]
mov byte [edi + 0x1c], al
cmp dword [ebp - 0xc8], 0
je case.0x45631c.11
mov esi, dword [esi + 8]
test esi, esi
jle case.0x45631c.11
jmp 0x456333
mov eax, dword [ebp - 0x5c]
test byte [eax + 8], 4
jne 0x459106
mov eax, dword [esi + 4]
mov ecx, edi
mov ecx, dword [ecx + 0x3c]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi]
test eax, eax
je 0x45867f
cmp byte [edi + 0x1c], 0
je 0x458640
mov dword [ebp - 0xd4], 1
jmp 0x458683
cmp byte [ebp - 0x71], 0x68
lea ecx, [ebp - 0xd4]
push ecx
push eax
jne 0x458655
call fcn.00451c42
jmp 0x45865a
call fcn.00451d22
and dword [edi + 0x60], 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0xd4]
test eax, eax
pop ecx
pop ecx
mov byte [edi + 0x1c], al
jne 0x458683
mov esi, dword [esi + 8]
dec esi
inc dword [0x4a9a9c]
mov dword [ebp - 0x64], esi
jmp 0x458683
mov byte [edi + 0x1c], 1
mov byte [edi + 0x19], 0
jmp case.0x45631c.11
mov ecx, dword [edi + 0x3c]
mov eax, dword [esi + 4]
mov esi, dword [ecx + eax*4]
mov edi, dword [esi]
test edi, edi
je 0x457c44
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
push 0
push 0x48ac32
cdq
push edx
push eax
push ecx
push edi
call fcn.0045233c
add esp, 0x18
mov dword [ebp - 0x4c], eax
and dword [esi + 0x60], 0
jmp 0x457c44
mov ecx, dword [edi + 0x3c]
mov eax, dword [esi + 4]
mov esi, dword [ecx + eax*4]
mov edi, dword [esi]
test edi, edi
je 0x457c44
lea eax, [ebp - 0x140]
push eax
mov eax, dword [ebx + 0x14]
cdq
push edx
push eax
push dword [ebx + 0x10]
push edi
call fcn.0044f464
add esp, 0x14
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x4586bc
cmp dword [ebp - 0x140], eax
jne 0x4586bc
push edi
call fcn.004524cf
pop ecx
jmp 0x4586b9
mov esi, dword [esi + 4]
add ebx, 0x40
mov word [ebx + 0x18], 1
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x50], ebx
je case.0x45631c.11
cmp byte [eax + 0x1c], 0
jne 0x456831
lea eax, [ebp - 0x15c]
push eax
push ecx
call fcn.00454665
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x458ead
mov word [ebx + 0x18], 4
mov eax, dword [ebp - 0x15c]
mov dword [ebx], eax
mov eax, dword [ebp - 0x158]
mov dword [ebx + 4], eax
jmp case.0x45631c.11
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov edi, dword [ecx + eax*4]
cmp dword [edi], 0
je 0x457c44
test byte [ebx + 0x18], 0x12
jne 0x458798
movzx eax, byte [ebp - 0x88]
push eax
push ebx
call fcn.00449eef
test eax, eax
pop ecx
pop ecx
jne 0x4564c7
cmp dword [esi + 0xc], 0
mov ecx, dword [edi + 0x48]
setne al
mov byte [ecx], al
lea eax, [ebp - 0xc0]
push eax
push dword [ebx + 0x10]
push dword [ebx + 0x14]
push edi
call fcn.00454728
mov ecx, dword [edi + 0x48]
add esp, 0x10
test eax, eax
mov dword [ebp - 0x4c], eax
mov byte [ecx], 0
jne case.0x45631c.11
mov al, byte [esi]
cmp al, 0x24
jne 0x4587d9
neg dword [ebp - 0xc0]
jmp 0x4587e3
cmp al, 0x3a
jne 0x4587e3
inc dword [ebp - 0xc0]
cmp dword [ebp - 0xc0], 0
jle 0x457c44
mov esi, dword [esi + 8]
jmp 0x457c12
mov eax, dword [esi + 4]
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x104]
push eax
push edi
call fcn.00449b35
cmp eax, dword [ebp - 0x70]
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
jge 0x457c44
cmp dword [ebp - 0x60], 0
jle 0x457c44
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebp - 0x54]
add eax, edi
push eax
call fcn.00449b35
add dword [ebp - 0x54], eax
cmp dword [ebp - 0x104], 0
pop ecx
pop ecx
je 0x4587f0
mov eax, dword [ebp - 0x70]
dec dword [ebp - 0x60]
cmp dword [ebp - 0x54], eax
jl 0x458822
jmp 0x457c44
mov edi, dword [ebp - 0x5c]
cmp dword [edi + 0x4c], 1
jle 0x458871
mov dword [ebp - 0x4c], 6
jmp case.0x45631c.11
mov ecx, dword [edi + 4]
lea eax, [ebp - 0xe0]
push eax
mov eax, dword [esi + 8]
push dword [esi + 4]
imul eax, eax, 0x18
push dword [eax + ecx + 4]
call fcn.00452782
add ebx, 0x40
mov dword [ebp - 0x4c], eax
mov word [ebx + 0x18], 4
mov eax, dword [ebp - 0xe0]
cdq
add esp, 0xc
cmp dword [ebp - 0x4c], 0
mov dword [ebx], eax
mov dword [ebp - 0x50], ebx
mov dword [ebx + 4], edx
jne case.0x45631c.11
cmp dword [ebp - 0xe0], 0
je case.0x45631c.11
mov eax, dword [esi + 8]
push dword [esi + 4]
imul eax, eax, 0x18
push dword [ebp - 0xe0]
add eax, dword [edi + 4]
push eax
call fcn.0044bcd5
jmp 0x45646a
mov eax, dword [esi + 8]
push dword [esi + 4]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 4]
push dword [eax + ecx + 4]
call fcn.0045270a
pop ecx
jmp 0x45765a
mov esi, dword [esi + 4]
mov eax, dword [ebp - 0x5c]
imul esi, esi, 0x18
add esi, dword [eax + 4]
xor eax, eax
cmp byte [ebp - 0x71], 0x30
setne al
dec eax
and eax, 3
inc eax
inc eax
push eax
lea eax, [ebp - 0xe4]
push eax
push dword [esi + 4]
call fcn.00451dd6
add ebx, 0x40
add esp, 0xc
test eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], ebx
jne 0x456831
mov eax, dword [ebp - 0xe4]
jmp 0x456e60
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x54], eax
imul eax, eax, 0x18
add eax, edx
mov edx, dword [eax + 0x14]
test byte [edx + 0x7a], 1
je case.0x45631c.11
cmp dword [ebp - 0x54], 1
mov edx, 0x4908ac
je 0x458975
mov edx, 0x49089c
push dword [esi + 0xc]
add edi, 0x230
push edx
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x150], edi
push dword [eax]
push dword [ebp - 0x54]
push 0x491884
call fcn.0045a265
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4564c7
mov edi, dword [ebp - 0x5c]
push edi
call fcn.00449984
push 0
lea eax, [ebp - 0x154]
push eax
push fcn.00448e56
push esi
push edi
mov byte [edi + 0x44], 1
call fcn.00447ea4
push esi
mov dword [ebp - 0x4c], eax
call fcn.0044954f
push edi
mov byte [edi + 0x44], 0
call fcn.00449954
add esp, 0x20
cmp dword [ebp - 0x4c], 7
jne case.0x45631c.11
call fcn.00449bf0
jmp 0x4564c7
push dword [esi + 4]
push dword [ebp - 0x5c]
call fcn.00459992
pop ecx
jmp 0x4568dc
push dword [esi + 0xc]
push dword [esi + 4]
push dword [ebp - 0x5c]
call fcn.0044b223
jmp 0x45646a
push dword [esi + 0xc]
push dword [esi + 4]
push dword [ebp - 0x5c]
call fcn.0044af80
jmp 0x45646a
push dword [esi + 0xc]
push dword [esi + 4]
push dword [ebp - 0x5c]
call fcn.00460987
jmp 0x45646a
and dword [ebp - 0x68], 0
cmp ebx, dword [edi + 0x28]
jb 0x458a60
mov eax, ebx
test byte [eax + 0x18], 4
je 0x458a60
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
shl ecx, 6
mov eax, ebx
sub eax, ecx
cmp eax, dword [edi + 0x28]
jae 0x458a48
mov eax, dword [ebp - 0x68]
lea eax, [eax*4 + 4]
push 1
push eax
call fcn.00449c00
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
je 0x4564c7
xor eax, eax
cmp dword [ebp - 0x68], eax
jle 0x458a97
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x54]
mov dword [edx + eax*4], ecx
inc eax
sub ebx, 0x40
cmp eax, dword [ebp - 0x68]
jl 0x458a86
mov ecx, dword [ebp - 0x54]
push dword [ebp - 0x68]
and dword [ecx + eax*4], 0
lea edi, [ebp - 0x50]
call fcn.004560fa
mov eax, dword [esi + 8]
push dword [ebp - 0x68]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x50]
push dword [ebp - 0x54]
mov ecx, dword [ecx + 4]
push dword [eax + ecx + 4]
add ebx, 0x40
mov dword [ebp - 0x50], ebx
call fcn.00451fc5
add esp, 0x10
test eax, eax
je 0x458af8
cmp byte [eax], 0
push eax
je 0x458af2
mov dword [ebx + 0x10], eax
call fcn.00480356
mov dword [ebx + 0x14], eax
mov word [ebx + 0x18], 0x62
and dword [ebx + 0x1c], 0
pop ecx
jmp 0x458b0c
call fcn.0044954f
pop ecx
mov dword [ebx + 0x10], 0x491880
mov dword [ebx + 0x14], 2
mov word [ebx + 0x18], 0xa2
movzx eax, byte [ebp - 0x88]
push eax
push ebx
mov byte [ebx + 0x1b], 1
call fcn.00449df8
push dword [ebp - 0x54]
call fcn.0044954f
jmp 0x45646a
push ebx
call fcn.0044a112
push dword [ebx + 4]
add edi, 0x64
push dword [ebx]
push edi
call fcn.004645d5
add esp, 0x10
jmp 0x4565ae
mov eax, dword [ebp - 0x5c]
test byte [eax + 8], 4
jne 0x459106
lea eax, [ebp - 0x14c]
push eax
mov eax, edi
add eax, 0x64
push eax
call fcn.00464632
cmp eax, 0x65
pop ecx
pop ecx
je 0x456330
mov eax, dword [ebp - 0x14c]
add ebx, 0x40
mov dword [ebx], eax
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x50], ebx
jmp 0x456aca
mov esi, dword [edi + 0x70]
cmp esi, dword [edi + 0x74]
lea eax, [esi + 1]
mov dword [edi + 0x70], eax
jl 0x458bb6
mov dword [edi + 0x74], eax
lea eax, [esi + 1]
imul eax, eax, 0x18
push eax
add edi, 0x78
push edi
call fcn.00449dd2
cmp dword [edi], 0
pop ecx
pop ecx
je 0x4564c7
mov eax, dword [ebp - 0x7c]
imul esi, esi, 0x18
add esi, dword [eax + 0x78]
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ecx + 0x20]
mov dword [esi], edx
mov ecx, dword [ecx + 0x24]
mov dword [esi + 4], ecx
mov ecx, dword [eax + 0x23c]
mov dword [esi + 8], ecx
add eax, 0x64
lea edi, [esi + 0xc]
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call fcn.004645c4
jmp 0x4568dc
mov eax, edi
dec dword [eax + 0x70]
mov ecx, dword [eax + 0x70]
imul ecx, ecx, 0x18
add ecx, dword [eax + 0x78]
lea edi, [eax + 0x64]
mov esi, ecx
mov edx, dword [esi]
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 0x20], edx
mov edx, dword [esi + 4]
mov dword [ecx + 0x24], edx
mov ecx, dword [esi + 8]
push edi
mov dword [eax + 0x23c], ecx
call fcn.00464681
add esi, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop ecx
movsd dword es:[edi], dword [esi]
jmp case.0x45631c.11
mov eax, dword [esi + 4]
shl eax, 6
add eax, dword [edi + 0x58]
push ebx
push eax
call fcn.0044a23d
sub ebx, 0x40
cmp dword [esi + 8], 0
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], ebx
jne case.0x45631c.11
mov eax, dword [esi + 4]
shl eax, 6
add ebx, 0x40
add eax, dword [edi + 0x58]
push 0x100
jmp 0x456460
mov esi, dword [esi + 4]
shl esi, 6
add esi, dword [edi + 0x58]
push esi
call fcn.0044a112
push ebx
call fcn.0044a112
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp edx, eax
pop ecx
pop ecx
mov ecx, dword [ebx]
jg case.0x45631c.11
jl 0x458c96
mov edx, dword [esi]
cmp edx, ecx
jae case.0x45631c.11
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x45631c.11
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
shl ecx, 6
add ecx, dword [edi + 0x58]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x45631c.11
mov eax, dword [esi + 4]
mov edi, dword [edi + 0x58]
shl eax, 6
cmp dword [eax + edi + 4], 0
jl case.0x45631c.11
jg 0x456330
cmp dword [eax + edi], 0
jbe case.0x45631c.11
jmp 0x456330
mov eax, dword [esi + 4]
mov edi, dword [edi + 0x58]
shl eax, 6
cmp dword [eax + edi + 4], 0
jg case.0x45631c.11
jl 0x456330
cmp dword [eax + edi], 0
jae case.0x45631c.11
jmp 0x456330
mov eax, dword [esi + 4]
mov edi, dword [edi + 0x58]
shl eax, 6
mov ecx, dword [eax + edi]
or ecx, dword [eax + edi + 4]
jne case.0x45631c.11
jmp 0x456330
mov eax, dword [esi + 4]
shl eax, 6
add eax, dword [edi + 0x58]
push eax
call fcn.0044a16e
jmp 0x4568dc
mov eax, dword [esi + 4]
cdq
push edx
push eax
mov eax, dword [esi + 8]
shl eax, 6
add eax, dword [edi + 0x58]
push eax
call fcn.0044a18a
jmp 0x45646a
mov eax, dword [esi + 8]
mov edi, dword [edi + 0x58]
shl eax, 6
add eax, edi
push eax
mov eax, dword [esi + 4]
shl eax, 6
add eax, edi
push eax
call fcn.0044a23d
jmp 0x4588f7
mov edx, dword [esi + 8]
and dword [ebp - 0x54], 0
mov eax, edx
shl eax, 6
sub ebx, eax
add ebx, 0x40
test edx, edx
mov ecx, ebx
mov ebx, dword [edi + 0x30]
mov dword [ebp - 0x70], edx
jle 0x458da4
mov eax, dword [ebp - 0x54]
mov dword [ebx + eax*4], ecx
call fcn.004560ce
inc dword [ebp - 0x54]
add ecx, 0x40
cmp dword [ebp - 0x54], edx
jl 0x458d8e
mov eax, dword [esi + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [esi + 4]
shl eax, 6
add eax, dword [edi + 0x58]
mov dword [ebp + 0x40], eax
inc dword [eax + 0x14]
xor eax, eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x1c], eax
mov byte [ebp + 0x44], al
mov dword [ebp + 0x48], eax
mov eax, dword [ebp - 8]
mov word [ebp + 0x18], 1
cmp byte [eax + 3], 0
je 0x458ddc
mov ecx, dword [esi - 8]
mov dword [ebp + 0x48], ecx
push ebx
push dword [ebp - 0x70]
lea ecx, [ebp - 8]
push ecx
call dword [eax + 0x14]
push dword [ebp - 0x70]
lea edi, [ebp - 0x50]
call fcn.004560fa
add esp, 0x10
cmp byte [ebp + 0x44], 0
je 0x458e20
lea eax, [ebp]
push 0
push eax
call fcn.004488fa
pop ecx
push eax
mov eax, dword [ebp - 0x7c]
add eax, 0x230
push eax
call fcn.00449cc2
add esp, 0xc
mov dword [ebp - 0x4c], 1
lea eax, [ebp]
push eax
call fcn.00449fca
jmp 0x45647a
mov eax, dword [esi + 4]
push dword [esi + 0xc]
shl eax, 6
add eax, dword [edi + 0x58]
push eax
mov dword [ebp - 0x8c], eax
call fcn.00449f3c
cmp eax, 1
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne case.0x45631c.11
push 0
push dword [ebp - 0x8c]
call fcn.004488fa
pop ecx
push eax
add edi, 0x230
push edi
call fcn.00449cc2
jmp 0x45646a
push dword [ebp - 0x5c]
call fcn.00449984
test eax, eax
pop ecx
jne 0x458ea6
push dword [ebp - 0x5c]
add edi, 0x230
push edi
call fcn.00464fda
push dword [ebp - 0x5c]
mov dword [ebp - 0x4c], eax
call fcn.00449954
add esp, 0xc
test eax, eax
je case.0x45631c.11
mov dword [ebp - 0x4c], 0x15
mov esi, dword [ebp - 0x7c]
add esi, 0x230
cmp dword [esi], 0
jne 0x458ee0
call fcn.00449bd4
test eax, eax
je 0x458ecb
mov dword [ebp - 0x4c], 7
push 0
push dword [ebp - 0x4c]
call fcn.004482b8
pop ecx
push eax
push esi
call fcn.00449cc2
add esp, 0xc
cmp dword [ebp - 0x4c], 0
je 0x459141
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x7c]
xor esi, esi
mov dword [ecx + 0x80], eax
inc esi
jmp 0x459144
cmp dword [esi + 4], 0
je 0x4577c5
mov byte [edi + 0x238], 1
jmp case.0x45631c.11
mov eax, dword [esi + 4]
test eax, eax
setl byte [ebp - 0x110]
cmp byte [ebp - 0x110], 0
je 0x458f30
or ecx, 0xffffffff
sub ecx, eax
mov eax, ecx
push dword [ebp - 0x110]
imul eax, eax, 0x18
push dword [esi + 8]
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 4]
push dword [eax + ecx + 4]
call fcn.0045177e
add esp, 0xc
cmp eax, 6
mov dword [ebp - 0x4c], eax
jne case.0x45631c.11
push 0
push dword [esi + 0xc]
add edi, 0x230
push 0x491864
push edi
call fcn.00449cc2
jmp 0x456402
mov dword [edi + 0x2c], ebx
mov eax, dword [esi + 4]
mov dword [edi + 0x80], eax
mov dword [edi + 0x7c], ecx
mov eax, dword [esi + 8]
mov dword [edi + 0x88], eax
mov esi, dword [esi + 0xc]
test esi, esi
je 0x458fa6
push 0
lea eax, [edi + 0x230]
push esi
push eax
call fcn.00449cc2
add esp, 0xc
push edi
call fcn.00454981
pop ecx
push 5
pop ecx
cmp eax, ecx
je 0x4590bb
mov eax, dword [edi + 0x80]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x70]
xor ecx, ebp
call fcn.0047ff5a
add ebp, 0x74
leave
ret
mov ecx, dword [esi + 4]
shl ecx, 6
mov eax, ebx
sub eax, ecx
mov ecx, dword [edi + 0x28]
cmp ecx, eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x58], ecx
jae 0x459020
mov eax, dword [ebp - 0x58]
test word [eax + 0x18], 0x100
je 0x459011
push eax
call fcn.00449e13
test eax, eax
pop ecx
jne 0x4564c7
mov edi, dword [ebp - 0x7c]
add dword [ebp - 0x58], 0x40
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0xe4]
jb 0x458ff4
mov eax, dword [edi + 0x60]
inc eax
inc eax
or eax, 1
mov dword [edi + 0x60], eax
jmp 0x459042
push dword [ebp - 0x58]
call fcn.00449e84
pop ecx
mov ecx, dword [ebp - 0x58]
call fcn.004560ce
add dword [ebp - 0x58], 0x40
cmp dword [ebp - 0x58], ebx
jbe 0x45902d
inc dword [edi + 0x5c]
mov byte [edi + 0x234], 1
mov eax, dword [esi + 4]
mov dword [edi + 0x22c], eax
mov eax, dword [ebp - 0x64]
inc eax
push 0x64
mov dword [edi + 0x7c], eax
pop eax
mov dword [edi + 0x2c], ebx
jmp 0x458fc8
mov dword [ebp - 0x4c], 0x14
jmp 0x458ead
cmp dword [esi + 8], 0
je 0x459093
mov esi, eax
push esi
call fcn.0044823b
pop ecx
mov byte [esi + 0x10], 1
push 0x65
pop eax
jmp 0x458fc8
mov al, byte [ebp - 0x71]
mov esi, dword [ebp - 0x5c]
push edi
mov byte [esi + 0x10], al
call fcn.00454981
pop ecx
push 5
pop ecx
cmp eax, ecx
jne 0x45908b
mov eax, dword [ebp - 0x64]
mov dword [edi + 0x7c], eax
mov al, 1
sub al, byte [ebp - 0x71]
mov dword [edi + 0x2c], ebx
mov byte [esi + 0x10], al
mov dword [edi + 0x80], ecx
mov eax, ecx
jmp 0x458fc8
mov eax, dword [ebp - 0x64]
mov dword [edi + 0x7c], eax
mov dword [edi + 0x80], ecx
mov eax, ecx
jmp 0x459064
mov edx, dword [ebp - 0x64]
mov dword [ecx + 0x7c], edx
xor edx, edx
mov dword [ecx + 0x80], eax
cmp dword [esi + 8], edx
setle dl
inc edx
shl edx, 6
add edx, ebx
mov dword [ecx + 0x2c], edx
jmp 0x458fc8
mov dword [ebp - 0x4c], 0xd
jmp 0x458ead
mov eax, dword [ebp - 0x5c]
and dword [eax + 8], 0xfffffffb
mov esi, dword [ebp - 0x7c]
xor ecx, ecx
cmp dword [eax + 0x30], 0xf03b7906
push 0
sete cl
dec ecx
and ecx, 0xc
add ecx, 9
mov eax, ecx
push eax
mov dword [ebp - 0x4c], eax
mov dword [esi + 0x80], eax
call fcn.004482b8
add esi, 0x230
jmp 0x458ed5
push 0x65
pop esi
push dword [ebp - 0x7c]
call fcn.00454981
mov edi, dword [ebp - 0x7c]
pop ecx
mov eax, esi
jmp 0x459064