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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov dword [ebp - 0x24], 0xffffffff
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 1
jne 0x45f4a7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov esi, dword [eax + 0xc]
dec esi
cmp esi, 0
jl 0x45f49d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 4]
mov ebx, dword [eax + esi*4]
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
dec esi
cmp esi, 0xffffffff
jne 0x45f47f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
call dword [edx]
push 0
push 0
push 0
or ecx, 0xffffffff
or edx, 0xffffffff
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
mov bl, 1
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x4c]
mov byte [ebp - 0x25], al
dec al
je 0x45f4d7
sub al, 2
je 0x45f561
jmp 0x45f56a
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0xffffffff
jne 0x45f4e7
xor ebx, ebx
jmp 0x4615f7
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x38]
mov edx, dword [edx + 4]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
call fcn.00402d90
cmp eax, dword [0x4531f8]
jne 0x45f52f
mov dl, 7
mov eax, dword [ebp - 4]
call fcn.00456ecc
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 1
jmp 0x4615f7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x60], 0xffffffff
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5c], edx
jmp 0x45f571
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
jmp 0x45f571
xor ebx, ebx
jmp 0x4615f7
mov eax, dword [ebp - 4]
push eax
mov eax, dword [eax]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.0045f434
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c], 2
jmp 0x461582
cmp dword [ebp - 0x2c], 0
je 0x45f5a0
mov eax, dword [ebp - 4]
call dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x45f5bd
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
movzx eax, byte [edx + eax]
mov edx, dword [ebp - 4]
inc dword [edx + 0x5c]
cmp eax, 0xe
jg 0x45f626
je 0x461044
cmp eax, 0xd
ja case.default.0x45f63d
jmp dword [eax*4 + 0x45f5ee]
cmp eax, 0x15
jg 0x45f65c
je 0x460643
add eax, 0xfffffff1
cmp eax, 5
ja case.default.0x45f63d
jmp dword [eax*4 + 0x45f644]
cmp eax, 0x19
jg 0x45f683
je 0x46009c
sub eax, 0x16
je 0x460d46
dec eax
je 0x460f93
dec eax
je 0x460ee2
jmp case.default.0x45f63d
sub eax, 0x1a
je 0x4600ea
sub eax, 0xe5
je 0x461582
jmp case.default.0x45f63d
lea edx, [ebp - 0xd]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 5], 0
je 0x45f754
mov eax, dword [ebp - 9]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x45f6d3
sub al, 2
je 0x45f6d3
sub al, 6
je 0x45f6d3
sub al, 4
jne 0x45f6de
mov edx, dword [ebp - 9]
mov eax, dword [ebp - 0xd]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x45f717
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x45f745
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
lea edx, [ebp - 0x16]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
mov eax, dword [ebp - 9]
push eax
mov eax, dword [ebp - 0x12]
push eax
mov ecx, dword [ebp - 0x16]
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 4]
call fcn.004581d8
test al, al
jne 0x45f836
cmp byte [ebp - 0xe], 0
je 0x46158f
mov eax, dword [ebp - 0x12]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x45f7a9
sub al, 2
je 0x45f7a9
sub al, 6
je 0x45f7a9
sub al, 4
jne 0x45f7b4
mov edx, dword [ebp - 0x12]
mov eax, dword [ebp - 0x16]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
sub esi, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x45f7ff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
jmp 0x46158f
cmp byte [ebp - 0xe], 0
je 0x461582
mov eax, dword [ebp - 0x12]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x45f858
sub al, 2
je 0x45f858
sub al, 6
je 0x45f858
sub al, 4
jne 0x45f863
mov edx, dword [ebp - 0x12]
mov eax, dword [ebp - 0x16]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x45f89c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x45f8f0
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
xor ebx, ebx
mov bl, byte [edx + eax]
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
lea edx, [ebp - 0xd]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 5], 0
je 0x45f9bf
mov eax, dword [ebp - 9]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x45f93e
sub al, 2
je 0x45f93e
sub al, 6
je 0x45f93e
sub al, 4
jne 0x45f949
mov edx, dword [ebp - 9]
mov eax, dword [ebp - 0xd]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x45f982
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x45f9b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
lea edx, [ebp - 0x16]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
mov eax, dword [ebp - 9]
push eax
mov eax, dword [ebp - 0x12]
push eax
push ebx
mov ecx, dword [ebp - 0x16]
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 4]
call fcn.0045abd0
test al, al
jne 0x45faa2
cmp byte [ebp - 0xe], 0
je 0x46158f
mov eax, dword [ebp - 0x12]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x45fa15
sub al, 2
je 0x45fa15
sub al, 6
je 0x45fa15
sub al, 4
jne 0x45fa20
mov edx, dword [ebp - 0x12]
mov eax, dword [ebp - 0x16]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
sub esi, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x45fa6b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
jmp 0x46158f
cmp byte [ebp - 0xe], 0
je 0x461582
mov eax, dword [ebp - 0x12]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x45fac4
sub al, 2
je 0x45fac4
sub al, 6
je 0x45fac4
sub al, 4
jne 0x45facf
mov edx, dword [ebp - 0x12]
mov eax, dword [ebp - 0x16]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x45fb08
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
jmp 0x461582
lea edx, [ebp - 0x16]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [ebp - 0x12]
call fcn.0046888c
mov esi, eax
mov eax, esi
add eax, 4
mov dword [ebp - 0xd], eax
mov eax, dword [esi]
mov dword [ebp - 9], eax
mov byte [ebp - 5], 0
mov eax, dword [ebp - 9]
push eax
mov eax, dword [ebp - 0x12]
push eax
mov ecx, dword [ebp - 0x16]
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 4]
call fcn.004581d8
test al, al
jne 0x45fc42
cmp byte [ebp - 0xe], 0
je 0x46158f
mov eax, dword [ebp - 0x12]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x45fbb5
sub al, 2
je 0x45fbb5
sub al, 6
je 0x45fbb5
sub al, 4
jne 0x45fbc0
mov edx, dword [ebp - 0x12]
mov eax, dword [ebp - 0x16]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
sub esi, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x45fc0b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
jmp 0x46158f
cmp byte [ebp - 0xe], 0
je 0x461582
mov eax, dword [ebp - 0x12]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x45fc64
sub al, 2
je 0x45fc64
sub al, 6
je 0x45fc64
sub al, 4
jne 0x45fc6f
mov edx, dword [ebp - 0x12]
mov eax, dword [ebp - 0x16]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x45fca8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
jmp 0x461582
lea edx, [ebp - 0x16]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 0xe], 0
je 0x45fd14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov dl, 0xd
mov eax, dword [ebp - 4]
call fcn.0045f050
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046888c
mov esi, eax
mov eax, dword [ebp - 0x12]
cmp byte [eax + 0xc], 0xd
jne 0x45fd53
mov eax, dword [ebp - 0x16]
mov eax, dword [eax]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x16]
add eax, 4
mov eax, dword [eax]
mov dword [esi + 8], eax
xor eax, eax
mov dword [esi + 0xc], eax
jmp 0x461582
mov eax, dword [ebp - 0x16]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x12]
mov dword [esi + 8], eax
xor eax, eax
mov dword [esi + 0xc], eax
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
cmp dword [eax + 0xc], 0
jne 0x45fd84
mov dl, 0xb
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov esi, dword [eax + edx*4 - 4]
test esi, esi
je 0x45fda0
mov eax, dword [esi]
cmp byte [eax + 0xc], 0
jne 0x45fdaf
mov dl, 0xb
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
cmp dword [eax + 0x10], 0x200
jbe 0x45fddb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, esi
sub edx, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov dword [eax + 0x1c], edx
mov eax, dword [esi]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x45fe06
sub al, 2
je 0x45fe06
sub al, 6
je 0x45fe06
sub al, 4
jne 0x45fe12
mov edx, dword [esi]
mov eax, esi
add eax, 4
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [eax + 0x18]
sub edx, dword [eax + 0x1c]
shr edx, 0xc
cmp edx, 2
jle 0x461582
call fcn.0046862c
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x45fe54
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp esi, dword [eax + 0xc]
jb 0x45fe86
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
mov ebx, dword [eax + esi*4]
mov eax, ebx
call fcn.00402d90
cmp eax, dword [0x4531f8]
jne 0x46001c
xor eax, eax
push ebp
push 0x45fef9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3c]
mov edx, ebx
mov eax, dword [ebp - 4]
call dword [ebx + 0x14]
test al, al
jne 0x45feec
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
jne 0x45fedf
mov dl, 0x11
mov eax, dword [ebp - 4]
call fcn.00456ecc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46158f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x461582
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046888c
mov esi, eax
mov eax, esi
add eax, 4
mov dword [ebp - 0xd], eax
mov eax, dword [esi]
mov dword [ebp - 9], eax
mov byte [ebp - 5], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov dword [esi + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov dword [esi + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
dec eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x50], ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5c], edx
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046882c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x4600c7
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046882c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046882c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x460120
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x460163
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x4601a6
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov bl, 1
lea edx, [ebp - 0x16]
mov ecx, ebx
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
mov eax, dword [ebp - 0x12]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x4601e1.0
jmp dword [eax*4 + 0x4601e8]
mov eax, dword [ebp - 0x16]
cmp byte [eax], 0
setne bl
jmp 0x46026c
mov eax, dword [ebp - 0x16]
cmp byte [eax], 0
setne bl
jmp 0x46026c
mov eax, dword [ebp - 0x16]
cmp word [eax], 0
setne bl
jmp 0x46026c
mov eax, dword [ebp - 0x16]
cmp word [eax], 0
setne bl
jmp 0x46026c
mov eax, dword [ebp - 0x16]
cmp dword [eax], 0
setne bl
jmp 0x46026c
mov eax, dword [ebp - 0x16]
cmp dword [eax], 0
setne bl
jmp 0x46026c
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00456ecc
cmp byte [ebp - 0xe], 0
je 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
jmp 0x46158f
cmp byte [ebp - 0xe], 0
je 0x46027d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
test bl, bl
je 0x461582
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x4602b0
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov bl, 1
lea edx, [ebp - 0x16]
mov ecx, ebx
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
mov eax, dword [ebp - 0x12]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x4602eb.0
jmp dword [eax*4 + 0x4602f2]
mov eax, dword [ebp - 0x16]
cmp byte [eax], 0
sete bl
jmp 0x460376
mov eax, dword [ebp - 0x16]
cmp byte [eax], 0
sete bl
jmp 0x460376
mov eax, dword [ebp - 0x16]
cmp word [eax], 0
sete bl
jmp 0x460376
mov eax, dword [ebp - 0x16]
cmp word [eax], 0
sete bl
jmp 0x460376
mov eax, dword [ebp - 0x16]
cmp dword [eax], 0
sete bl
jmp 0x460376
mov eax, dword [ebp - 0x16]
cmp dword [eax], 0
sete bl
jmp 0x460376
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00456ecc
cmp byte [ebp - 0xe], 0
je 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
jmp 0x46158f
cmp byte [ebp - 0xe], 0
je 0x460387
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
test bl, bl
je 0x461582
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
dec eax
mov dword [ebp - 0x24], eax
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
jbe 0x4604b9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
jmp 0x460496
cmp dword [ebx + 0x10], 0xfffffffe
jne 0x4603ed
push 0
push 0
push 0
or ecx, 0xffffffff
or edx, 0xffffffff
mov eax, dword [ebp - 4]
mov edi, dword [eax]
call dword [edi + 8]
jmp 0x46041b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebx + 8]
jbe 0x46041b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
dec eax
mov edi, dword [ebx + 8]
sub edi, eax
ja 0x46041b
dec edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046882c
inc edi
jne 0x46040d
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebx + 0xc]
cmp eax, 0xffffffff
je 0x460440
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0xc], 0xffffffff
mov esi, 1
jmp 0x4604b9
cmp dword [ebx + 0x14], 0xffffffff
je 0x46045d
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x14], 0xffffffff
mov esi, 1
jmp 0x4604b9
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00451b38
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
je 0x4604b9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 4]
cmp edx, dword [ecx + 0x60]
je 0x4603d1
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x60]
jbe 0x4604b9
cmp eax, 0xffffffff
jne 0x4603d1
test esi, esi
jne 0x461582
mov dword [ebp - 0x24], 0xffffffff
mov eax, dword [ebp - 4]
cmp dword [eax + 0x60], 0xffffffff
jne 0x4604df
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 0x25]
mov byte [eax + 0x4c], dl
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + 0xc]
dec esi
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x60]
inc edi
sub edi, esi
jg 0x460503
dec edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046882c
inc edi
jne 0x4604f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x44]
cmp eax, dword [edx + 0xc]
jb 0x460522
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 0x25]
mov byte [eax + 0x4c], dl
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x44]
mov edx, dword [edx + 4]
mov esi, dword [edx + eax*4]
mov eax, dword [esi + 4]
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
mov eax, dword [esi + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046882c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x50], 0
jne 0x460571
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 0x25]
mov byte [eax + 0x4c], dl
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x4605b4
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
cmp esi, dword [eax + 0xc]
jbe 0x4605e6
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 4]
mov edx, dword [eax + esi*4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046888c
jmp 0x461582
lea edx, [ebp - 0xd]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 5], 0
je 0x460628
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov ecx, dword [ebp - 9]
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 4]
call fcn.0045eae4
test al, al
je 0x46158f
jmp 0x461582
lea edx, [ebp - 0xd]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 5], 0
je 0x460669
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov ecx, dword [ebp - 9]
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 4]
call fcn.0045f34c
test al, al
je 0x46158f
jmp 0x461582
lea edx, [ebp - 0xd]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 5], 0
je 0x4606aa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov ecx, dword [ebp - 9]
mov edx, dword [ebp - 0xd]
mov eax, dword [ebp - 4]
call fcn.0045e9ac
test al, al
je 0x46158f
jmp 0x461582
lea edx, [ebp - 0xd]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x46070c
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
cmp byte [ebp - 5], 0
je 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
movzx esi, byte [edx + eax]
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
mov eax, dword [ebp - 9]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x460732.0
jmp dword [eax*4 + 0x460739]
mov eax, dword [ebp - 0xd]
cmp byte [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x4607e1
mov eax, dword [ebp - 0xd]
cmp byte [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x4607e1
mov eax, dword [ebp - 0xd]
cmp word [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x4607e1
mov eax, dword [ebp - 0xd]
cmp word [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x4607e1
mov eax, dword [ebp - 0xd]
cmp dword [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x4607e1
mov eax, dword [ebp - 0xd]
cmp dword [eax], 0
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
jmp 0x4607e1
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00456ecc
cmp byte [ebp - 5], 0
je 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
jmp 0x46158f
test esi, esi
je 0x4607f3
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x10]
xor al, 1
mov edx, dword [ebp - 4]
mov byte [edx + 0x10], al
cmp byte [ebp - 5], 0
je 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add eax, 3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x46082d
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea eax, [edx + eax]
mov esi, dword [eax]
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], 4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x10], 0
je 0x461582
mov eax, dword [ebp - 4]
add dword [eax + 0x5c], esi
jmp 0x461582
mov eax, 0x1c
call fcn.0040271c
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov dword [ebx], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
mov dword [ebx + 8], eax
lea edx, [ebx + 0xc]
mov eax, dword [ebp - 4]
call fcn.0045ec60
test al, al
jne 0x4608b0
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
jmp 0x46158f
lea edx, [ebx + 0x10]
mov eax, dword [ebp - 4]
call fcn.0045ec60
test al, al
jne 0x4608da
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
jmp 0x46158f
lea edx, [ebx + 0x14]
mov eax, dword [ebp - 4]
call fcn.0045ec60
test al, al
jne 0x460904
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
jmp 0x46158f
lea edx, [ebx + 0x18]
mov eax, dword [ebp - 4]
call fcn.0045ec60
test al, al
jne 0x46092e
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
jmp 0x46158f
cmp dword [ebx + 0xc], 0xffffffff
je 0x46093d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0xc], eax
cmp dword [ebx + 0x10], 0xffffffff
je 0x46094c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x10], eax
cmp dword [ebx + 0x14], 0xffffffff
je 0x46095b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x14], eax
cmp dword [ebx + 0x18], 0xffffffff
je 0x46096a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
add dword [ebx + 0x18], eax
cmp dword [ebx + 0xc], 0xffffffff
je 0x46097b
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x4609ae
cmp dword [ebx + 0x10], 0xffffffff
je 0x46098c
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x4609ae
cmp dword [ebx + 0x14], 0xffffffff
je 0x46099d
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jae 0x4609ae
cmp dword [ebx + 0x18], 0xffffffff
je 0x4609c9
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x4609c9
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, ebx
call fcn.00451af0
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x4609f8
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
movzx esi, byte [edx + eax]
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
sub esi, 1
jb 0x460adf
je 0x460bb9
dec esi
je 0x460a2c
dec esi
je 0x460ca2
jmp 0x461582
push 0
push 0
push 0
or ecx, 0xffffffff
or edx, 0xffffffff
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
jne 0x460a5b
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x460a84
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov dword [ebx + 0x10], 0xffffffff
cmp dword [ebx + 0x14], 0xffffffff
je 0x460aa6
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x14], 0xffffffff
jmp 0x461582
mov esi, dword [ebx + 0x18]
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00451b38
cmp dword [ebp - 0x24], 0xffffffff
je 0x460ad4
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x5c], edx
jmp 0x461582
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], esi
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x460b08
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
cmp dword [ebx + 0xc], 0xffffffff
je 0x460b23
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0xc], 0xffffffff
jmp 0x461582
cmp dword [ebx + 0x14], 0xffffffff
je 0x460b3e
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x10], 0xffffffff
jmp 0x461582
mov esi, dword [ebx + 0x18]
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00451b38
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x460b9a
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x70]
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
push esi
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x74]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x461582
cmp dword [ebp - 0x24], 0xffffffff
je 0x460bae
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x5c], edx
jmp 0x461582
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], esi
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x460be2
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x460c0c
cmp dword [ebx + 0x10], 0xffffffff
je 0x460c0c
cmp dword [ebx + 0x10], 0xfffffffe
je 0x460c0c
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x10], 0xfffffffe
jmp 0x461582
cmp dword [ebx + 0x14], 0xffffffff
je 0x460c27
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov dword [ebx + 0x14], 0xffffffff
jmp 0x461582
mov esi, dword [ebx + 0x18]
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00451b38
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x460c83
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x70]
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
push esi
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x74]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x461582
cmp dword [ebp - 0x24], 0xffffffff
je 0x460c97
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x5c], edx
jmp 0x461582
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], esi
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov edx, dword [edx + 4]
mov ebx, dword [edx + eax*4 - 4]
test ebx, ebx
jne 0x460ccb
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov esi, dword [ebx + 0x18]
mov edx, 0x1c
mov eax, ebx
call fcn.00402734
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.00451b38
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
je 0x460d27
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x70]
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
push esi
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x74]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x461582
cmp dword [ebp - 0x24], 0xffffffff
je 0x460d3b
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x5c], edx
jmp 0x461582
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], esi
jmp 0x461582
lea edx, [ebp - 0xd]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 5], 0
je 0x460d7b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 9]
cmp byte [eax + 0xc], 0xd
je 0x460d93
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
lea edx, [ebp - 0x16]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
mov eax, dword [ebp - 0xd]
add eax, 8
cmp dword [eax], 0
je 0x460dc5
mov eax, dword [ebp - 0xd]
add eax, 4
mov edx, dword [eax]
mov eax, dword [ebp - 0xd]
mov eax, dword [eax]
call fcn.004551c4
mov eax, dword [ebp - 0x12]
cmp byte [eax + 0xc], 0xd
jne 0x460e6a
mov eax, dword [ebp - 0x16]
cmp dword [eax], 0
je 0x460e4d
mov eax, dword [ebp - 0x16]
add eax, 4
mov eax, dword [eax]
call fcn.004551a8
mov edx, dword [ebp - 0xd]
mov dword [edx], eax
mov eax, dword [ebp - 0x16]
add eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 0xd]
add edx, 4
mov dword [edx], eax
mov eax, dword [ebp - 0xd]
add eax, 8
mov dword [eax], 1
mov eax, dword [ebp - 0xd]
add eax, 4
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x16]
mov edx, dword [eax]
mov eax, dword [ebp - 0xd]
mov eax, dword [eax]
mov ecx, 1
call fcn.00457b68
test al, al
jne 0x460ec8
cmp byte [ebp - 0xe], 0
je 0x460e3e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 0xd]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0xd]
add eax, 4
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0xd]
add eax, 8
xor edx, edx
mov dword [eax], edx
jmp 0x460ec8
mov eax, dword [ebp - 0x12]
call fcn.004551a8
mov edx, dword [ebp - 0xd]
mov dword [edx], eax
mov eax, dword [ebp - 0xd]
add eax, 4
mov edx, dword [ebp - 0x12]
mov dword [eax], edx
mov eax, dword [ebp - 0xd]
add eax, 8
mov dword [eax], 1
mov eax, dword [ebp - 0x12]
push eax
mov eax, dword [ebp - 0xd]
mov eax, dword [eax]
mov ecx, 1
mov edx, dword [ebp - 0x16]
call fcn.00457b68
test al, al
jne 0x460ec8
cmp byte [ebp - 0xe], 0
je 0x460eb9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
cmp byte [ebp - 0xe], 0
je 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
jmp 0x461582
lea edx, [ebp - 0xd]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 5], 0
je 0x460f17
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 9]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x460f23.0
jmp dword [eax*4 + 0x460f2a]
mov eax, dword [ebp - 0xd]
dec byte [eax]
jmp 0x461582
mov eax, dword [ebp - 0xd]
dec byte [eax]
jmp 0x461582
mov eax, dword [ebp - 0xd]
dec word [eax]
jmp 0x461582
mov eax, dword [ebp - 0xd]
dec word [eax]
jmp 0x461582
mov eax, dword [ebp - 0xd]
dec dword [eax]
jmp 0x461582
mov eax, dword [ebp - 0xd]
dec dword [eax]
jmp 0x461582
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
lea edx, [ebp - 0xd]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 5], 0
je 0x460fc8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 9]
movzx eax, byte [eax + 0xc]
cmp eax, 6
ja case.0x460fd4.0
jmp dword [eax*4 + 0x460fdb]
mov eax, dword [ebp - 0xd]
inc byte [eax]
jmp 0x461582
mov eax, dword [ebp - 0xd]
inc byte [eax]
jmp 0x461582
mov eax, dword [ebp - 0xd]
inc word [eax]
jmp 0x461582
mov eax, dword [ebp - 0xd]
inc word [eax]
jmp 0x461582
mov eax, dword [ebp - 0xd]
inc dword [eax]
jmp 0x461582
mov eax, dword [ebp - 0xd]
inc dword [eax]
jmp 0x461582
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
lea edx, [ebp - 0xd]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 5], 0
je 0x461079
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 9]
cmp byte [eax + 0xc], 0xd
je 0x461091
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
lea edx, [ebp - 0x16]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 0xe], 0
je 0x4610c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 0x12]
cmp byte [eax + 0xc], 0xd
jne 0x4610ee
mov eax, dword [ebp - 0x16]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd]
mov dword [edx], eax
mov eax, dword [ebp - 0x16]
add eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 0xd]
add edx, 4
mov dword [edx], eax
jmp 0x461582
mov eax, dword [ebp - 0xd]
mov edx, dword [ebp - 0x16]
mov dword [eax], edx
mov eax, dword [ebp - 0xd]
add eax, 4
mov edx, dword [ebp - 0x12]
mov dword [eax], edx
jmp 0x461582
lea edx, [ebp - 0xd]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
mov eax, dword [ebp - 9]
cmp byte [eax + 0xc], 0x15
je 0x461144
cmp byte [ebp - 5], 0
je 0x461135
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 0xd]
mov esi, dword [eax]
cmp byte [ebp - 5], 0
je 0x46115a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046882c
test esi, esi
jne 0x461192
mov eax, dword [ebp - 0xd]
add eax, 8
cmp dword [eax], 0
je 0x461192
mov eax, dword [ebp - 0xd]
add eax, 8
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0xd]
add eax, 4
mov ecx, dword [eax]
mov edx, dword [ebp - 9]
mov eax, dword [ebp - 4]
call fcn.004671d0
test al, al
je 0x46158f
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp esi, dword [eax + 0xc]
jae 0x4611a5
mov eax, dword [ebp - 4]
cmp esi, dword [eax + 0x48]
jne 0x4611b4
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
mov ebx, dword [eax + esi*4]
mov eax, ebx
call fcn.00402d90
cmp eax, dword [0x4531f8]
jne 0x4611fb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3c]
mov edx, ebx
mov eax, dword [ebp - 4]
call dword [ebx + 0x14]
test al, al
jne 0x461582
mov dl, 0x11
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x461582
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046888c
mov esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov dword [esi + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov dword [esi + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + 0xc]
dec eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x50], ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5c], edx
jmp 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x58]
jb 0x461287
mov dl, 0xa
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
xor ebx, ebx
mov bl, byte [edx + eax]
mov eax, dword [ebp - 4]
inc dword [eax + 0x5c]
lea edx, [ebp - 0x1f]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
cmp byte [ebp - 0x17], 0
je 0x461356
mov eax, dword [ebp - 0x1b]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x4612d5
sub al, 2
je 0x4612d5
sub al, 6
je 0x4612d5
sub al, 4
jne 0x4612e0
mov edx, dword [ebp - 0x1b]
mov eax, dword [ebp - 0x1f]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x461319
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x461347
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00456ecc
jmp 0x46158f
lea edx, [ebp - 0x16]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
je 0x46158f
lea edx, [ebp - 0xd]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045e020
test al, al
jne 0x46142f
cmp byte [ebp - 0xe], 0
je 0x46158f
mov eax, dword [ebp - 0x12]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x4613a2
sub al, 2
je 0x4613a2
sub al, 6
je 0x4613a2
sub al, 4
jne 0x4613ad
mov edx, dword [ebp - 0x12]
mov eax, dword [ebp - 0x16]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov edx, dword [edx + 4]
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
sub esi, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x4613f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x46158f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
jmp 0x46158f
mov eax, dword [ebp - 0x1f]
push eax
mov eax, dword [ebp - 0x12]
push eax
mov eax, dword [ebp - 9]
push eax
mov eax, dword [ebp - 0x1b]
push eax
push ebx
mov ecx, dword [ebp - 0xd]
mov edx, dword [ebp - 0x16]
mov eax, dword [ebp - 4]
call fcn.00458e90
cmp byte [ebp - 5], 0
je 0x4614e2
mov eax, dword [ebp - 9]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x461470
sub al, 2
je 0x461470
sub al, 6
je 0x461470
sub al, 4
jne 0x46147b
mov edx, dword [ebp - 9]
mov eax, dword [ebp - 0xd]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x4614b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x4614e2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
cmp byte [ebp - 0xe], 0
je 0x461582
mov eax, dword [ebp - 0x12]
mov al, byte [eax + 0xc]
add al, 0xf6
sub al, 4
jb 0x461504
sub al, 2
je 0x461504
sub al, 6
je 0x461504
sub al, 4
jne 0x46150f
mov edx, dword [ebp - 0x12]
mov eax, dword [ebp - 0x16]
call fcn.00454fa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edx*4 - 4]
sub esi, dword [eax + 0x14]
dec dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
inc dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp dword [eax + 0x10], 0x200
jbe 0x461548
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00451a90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
sub eax, dword [edx + 0x1c]
shr eax, 0xc
cmp eax, 2
jle 0x461582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.0046862c
jmp 0x461582
mov dl, 5
mov eax, dword [ebp - 4]
call fcn.00456ecc
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 2
je 0x45f594
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0xc], 0
je 0x4615a8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 2
je 0x45f588
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4c], 1
jne 0x4615ed
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + 0xc]
dec esi
cmp esi, 0
jl 0x4615d1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046882c
dec esi
cmp esi, 0xffffffff
jne 0x4615c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.0046863c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x11], 0
je 0x4615ed
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x14]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7c], 0
sete bl
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret