Function at 0x4536c0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1ac
mov esi, dword [esp + 0x1c0]
movzx eax, byte [esp + 0x1c4]
mov edx, dword [esi + 0x258]
mov byte [esp + 0x7f], al
mov eax, dword [esi + 0x3c]
test eax, eax
jle 0x4539c3
dec edx
jle 0x4536f8
mov dword [esi + 0x44], 0
mov dword [esp], esi
call fcn.00452c40
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x14]
add edx, eax
cmp dword [esi + 0x258], 1
mov dword [esi + 0x2c], edx
je 0x4539e4
test eax, eax
jle 0x4539d2
mov eax, esi
mov ecx, 0x31
mov edx, 8
call fcn.00453620
mov ecx, dword [esi + 0x1c]
mov edx, 0x18
call fcn.00453620
mov eax, dword [esi + 0x24]
lea ecx, [esi + 0x150]
mov dword [esi + 0x4c], 0
mov ebx, dword [esi + 0x20]
xor edx, edx
mov dword [esp + 0x84], esi
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x58], eax
lea eax, [esi + 0x50]
lea esi, [esi]
nop
cmp byte [eax], 0
je 0x453783
mov byte [eax + 0x100], dl
lea edi, [edx + 1]
mov dword [esi + 0x4c], edi
mov edx, edi
inc eax
cmp ecx, eax
jne 0x453770
mov dword [esp + 0x5c], edx
inc edx
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x5c]
js 0x455614
lea edi, [esi + 0x260]
add eax, 2
mov dword [esp + 0x44], eax
lea edx, [eax*4]
cmp edx, 8
jae 0x455586
test dl, 4
jne 0x455546
test dl, 2
jne 0x455533
test dl, 1
jne 0x45552b
mov eax, dword [esp + 0x5c]
test eax, eax
jle 0x45561b
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0xa0]
xor eax, eax
mov dword [esp + 0x60], ecx
mov byte [ecx + eax], al
inc eax
cmp eax, edx
jne 0x4537f0
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x45562b
mov eax, dword [esp + 0x2c]
mov edi, ebx
xor ebp, ebp
lea eax, [ebx + eax*4]
xor ebx, ebx
mov dword [esp + 0x28], eax
jmp 0x45382a
mov eax, dword [esp + 0x28]
add edi, 4
inc ebx
cmp edi, eax
je 0x4538c0
mov eax, dword [edi]
dec eax
jns 0x453835
mov edx, dword [esp + 0x2c]
add eax, edx
mov edx, dword [esp + 0x24]
movzx eax, byte [edx + eax]
movzx edx, byte [esp + 0xa0]
movzx ecx, byte [esi + eax + 0x150]
cmp cl, dl
je 0x45381a
test ebx, ebx
jne 0x4539fe
movzx eax, byte [esp + 0xa1]
mov byte [esp + 0xa1], dl
cmp cl, al
je 0x4555bb
lea ebx, [esp + 0xa1]
lea esi, [esi]
nop
inc ebx
mov dl, al
movzx eax, byte [ebx]
mov byte [ebx], dl
cmp cl, al
jne 0x453880
mov edx, dword [esp + 0x60]
sub ebx, edx
mov edx, ebx
inc edx
movzx ecx, dx
mov byte [esp + 0xa0], al
mov eax, dword [esp + 0x58]
add edi, 4
xor ebx, ebx
mov word [eax + ebp*2], cx
mov eax, dword [esp + 0x28]
inc ebp
inc dword [esi + edx*4 + 0x260]
cmp edi, eax
jne 0x45382a
lea eax, [ebx - 1]
test ebx, ebx
je 0x4555da
mov ecx, dword [esp + 0x58]
jmp 0x4538ea
mov word [ecx + edx*2 - 2], 1
inc dword [esi + 0x264]
cmp eax, 1
jle 0x453903
sub eax, 2
mov ebp, edx
sar eax, 1
lea edx, [ebp + 1]
test al, 1
jne 0x4538d1
mov word [ecx + edx*2 - 2], 0
inc dword [esi + 0x260]
cmp eax, 1
jg 0x4538e3
mov eax, dword [esp + 0x58]
lea ebx, [ebp + 2]
mov dword [esp + 0x30], ebx
lea eax, [eax + edx*2]
mov ebx, dword [esp + 0x3c]
lea ebp, [esi + 0x930c]
mov edi, 0xf0f0f0f
mov dword [esp + 0x70], ebp
mov dword [esp + 0x1c0], esi
mov word [eax], bx
mov eax, dword [esp + 0x30]
inc dword [esi + ebx*4 + 0x260]
mov ebx, dword [esp + 0x44]
mov dword [esi + 0x25c], eax
lea eax, [esi + 0x9918]
mov dword [esp + 0x64], eax
jmp 0x453984
test cl, 4
je 0x45395d
mov dword [eax], 0xf0f0f0f
add eax, 4
test cl, 2
je 0x45396a
mov word [eax], 0xf0f
add eax, 2
test cl, 1
je 0x453972
mov byte [eax], 0xf
mov eax, dword [esp + 0x64]
add ebp, 0x102
cmp ebp, eax
je 0x453a99
test ebx, ebx
jle 0x453972
cmp ebx, 8
mov ecx, ebx
mov eax, ebp
jb 0x45394f
test ebp, 1
jne 0x4555ca
test al, 2
jne 0x4555ed
cmp ecx, 8
jb 0x45394f
mov esi, ecx
xor edx, edx
and esi, 0xfffffff8
mov dword [eax + edx], edi
mov dword [eax + edx + 4], edi
add edx, 8
cmp edx, esi
jb 0x4539b1
add eax, edx
jmp 0x45394f
mov ecx, dword [esi + 0x14]
add eax, ecx
dec edx
mov dword [esi + 0x2c], eax
je 0x45555a
cmp byte [esp + 0x7f], 0
jne 0x453a36
add esp, 0x1ac
pop ebx
pop esi
pop edi
pop ebp
ret
xor ecx, ecx
xor ebx, ebx
mov dword [esi + 0x254], ecx
test eax, eax
mov dword [esi + 0x250], ebx
jg 0x453720
jmp 0x4539d2
lea eax, [ebx - 1]
mov ebx, dword [esp + 0x58]
jmp 0x453a22
mov word [ebx + ebp*2 - 2], 1
inc dword [esi + 0x264]
cmp eax, 1
jle 0x453859
sub eax, 2
sar eax, 1
inc ebp
test al, 1
jne 0x453a07
mov word [ebx + ebp*2 - 2], 0
inc dword [esi + 0x260]
jmp 0x453a14
mov ecx, 0x17
mov edx, 8
mov eax, esi
call fcn.00453620
mov ebx, dword [esi + 0x254]
test ebx, ebx
jle 0x4539d9
mov eax, dword [esi + 0x250]
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x2c]
shr eax, 0x18
mov byte [ecx + edx], al
mov eax, dword [esi + 0x44]
mov ebx, dword [esi + 0x254]
lea edx, [eax + 1]
mov eax, dword [esi + 0x250]
mov dword [esi + 0x44], edx
lea ecx, [ebx - 8]
mov dword [esi + 0x254], ecx
shl eax, 8
test ecx, ecx
mov dword [esi + 0x250], eax
jg 0x453a5a
add esp, 0x1ac
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x1c0]
cmp eax, 0xc7
jle 0x453ad8
cmp eax, 0x257
jle 0x45556f
cmp eax, 0x4af
jle 0x4555fd
xor ebx, ebx
cmp eax, 0x960
setge bl
add ebx, 5
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x2c], ebx
jmp 0x453aea
mov ebp, 2
mov eax, 2
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x4c], edi
lea edx, [edi - 1]
mov eax, edx
shl eax, 7
add eax, edx
lea ebx, [eax + eax]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x48], ebx
lea ebp, [esi + ebx]
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x24]
cdq
idiv ebx
cmp dword [esp + 0x2c], ebx
lea edx, [edi - 1]
mov edi, ebx
mov ebx, dword [esp + 0x3c]
setne byte [esp + 0x34]
dec edi
setne byte [esp + 0x38]
xor ecx, ecx
cmp edx, ebx
jge 0x453c1f
test eax, eax
jle 0x453c1f
mov dword [esp + 0x40], ebp
mov ebp, eax
mov eax, dword [esp + 0x5c]
jmp 0x453b64
cmp edi, eax
jge 0x453b76
mov edi, edx
inc edx
mov ebx, dword [esi + edx*4 + 0x260]
add ebx, ecx
cmp ebp, ebx
mov ecx, ebx
jg 0x453b60
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x40], ebx
movzx ebx, byte [esp + 0x38]
test byte [esp + 0x34], bl
je 0x453c1f
mov eax, dword [esp + 0x24]
cmp edx, eax
jle 0x453c1f
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
sub eax, ebx
mov ebx, eax
shr ebx, 0x1f
add eax, ebx
and eax, 1
sub eax, ebx
dec eax
je 0x453c28
lea eax, [edi + 2]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x44]
xor ebx, ebx
dec dword [esp + 0x4c]
test eax, eax
jle 0x453c00
mov dword [esp + 0x38], ecx
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
jmp 0x453be4
mov byte [ebp + ebx + 0x930c], al
inc ebx
cmp ecx, ebx
je 0x453bfc
cmp edx, ebx
jl 0x453bee
xor eax, eax
cmp ebx, edi
jge 0x453bd8
mov al, 0xf
mov byte [ebp + ebx + 0x930c], al
inc ebx
cmp ecx, ebx
jne 0x453be4
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x4c]
sub ebp, 0x102
sub dword [esp + 0x28], ecx
test eax, eax
je 0x453c42
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], eax
jmp 0x453b14
lea eax, [edx + 1]
mov dword [esp + 0x34], eax
jmp 0x453bb9
mov dword [esp + 0x34], edx
mov eax, dword [esi + edx*4 + 0x260]
mov edx, edi
mov ebx, dword [esp + 0x40]
sub ebx, eax
mov ecx, ebx
jmp 0x453bb9
mov edi, dword [esp + 0x2c]
lea edx, [esi + 0xb148]
mov dword [esp + 0x1c0], esi
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x80], edx
mov eax, edi
shl eax, 7
add eax, edi
lea eax, [esi + eax*8 + 0xb148]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x44]
shl eax, 2
mov dword [esp + 0x78], eax
lea eax, [edi + edi]
mov dword [esp + 0x38], eax
lea eax, [esp + eax + 0x94]
mov dword [esp + 0x50], eax
lea eax, [ebx + 0x102]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x70]
lea ebp, [eax + ebx + 0x102]
mov eax, 4
mov dword [esp + 0x74], eax
mov dword [esp + 0x88], ebp
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x68], esi
jmp 0x453d01
test dl, 4
je 0x453cde
mov dword [edi], 0
add edi, 4
test dl, 2
je 0x453ceb
mov word [edi], 0
add edi, 2
test dl, 1
je 0x453cf3
mov byte [edi], 0
mov eax, dword [esp + 0x48]
add esi, 0x408
cmp esi, eax
je 0x453d40
test ebp, ebp
jle 0x453cf3
cmp ebx, 8
mov edx, ebx
mov edi, esi
jb 0x453cd0
test esi, 1
jne 0x454bc6
test edi, 2
jne 0x454bb6
test edi, 4
jne 0x454ba5
mov ecx, edx
xor eax, eax
shr ecx, 2
and edx, 3
rep stosd dword es:[edi], eax
jmp 0x453cd0
cmp dword [esp + 0x2c], 6
je 0x4554b7
mov eax, dword [esp + 0x30]
xor ebp, ebp
mov dword [esp + 0x3c], ebp
test eax, eax
jle 0x454b47
dec eax
mov esi, dword [esp + 0x30]
xor ebp, ebp
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x58]
lea ebx, [ebp + 0x31]
mov dword [esp + 0x28], ebx
cmp ebx, esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c0]
jge 0x454a2b
lea esi, [esi]
lea esi, [esi]
mov ebx, dword [esp + 0x38]
lea esi, [ebp + 0x32]
mov dword [esp + 0x34], esi
lea edx, [esp + 0x94]
cmp ebx, 8
jae 0x454a4f
test byte [esp + 0x38], 4
je 0x453dbb
mov dword [edx], 0
add edx, 4
test byte [esp + 0x38], 2
je 0x453dc7
mov word [edx], 0
cmp dword [esp + 0x2c], 6
jne 0x454a88
mov edx, dword [esp + 0x28]
sub edx, ebp
cmp edx, 0x31
jne 0x454a88
mov edi, dword [esp + 0x24]
movzx edx, word [edi + ebp*2 + 4]
movzx ebx, word [edi + ebp*2 + 2]
movzx esi, word [edi + ebp*2]
mov ecx, edx
shl ecx, 4
mov edi, ebx
mov dword [esp + 0x40], esi
shl edi, 4
mov ecx, dword [ecx + eax + 0xc978]
mov edi, dword [eax + edi + 0xc978]
shl edx, 4
shl ebx, 4
add edx, eax
add ecx, edi
mov edi, dword [esp + 0x40]
mov esi, edi
shl esi, 4
add ecx, dword [eax + esi + 0xc978]
mov esi, dword [eax + ebx + 0xc97c]
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 0xc97c]
mov edx, dword [edx + 0xc980]
add ecx, esi
mov esi, edi
shl esi, 4
mov edi, dword [eax + esi + 0xc97c]
add ecx, edi
mov edi, dword [eax + ebx + 0xc980]
mov ebx, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
mov edi, dword [esp + 0x40]
add edx, ebx
movzx esi, word [esi + ebp*2 + 6]
mov ebx, esi
shl ebx, 4
add edi, dword [eax + ebx + 0xc978]
shl esi, 4
mov ebx, edi
mov edi, dword [eax + esi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 8]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0xa]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0xc]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0xe]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x10]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x12]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x14]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x16]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x18]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x1a]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x1c]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x1e]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x20]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x22]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x24]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x26]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x28]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x2a]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x2c]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x2e]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x30]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x32]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x34]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x36]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x38]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x3a]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x3c]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x3e]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x40]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x42]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x44]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x46]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x48]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x4a]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x4c]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x4e]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x50]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x52]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x54]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x56]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x58]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x5a]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x5c]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
movzx esi, word [esi + ebp*2 + 0x5e]
mov edi, esi
shl edi, 4
mov esi, dword [eax + edi + 0xc978]
add ebx, esi
mov esi, edi
mov edi, dword [eax + edi + 0xc97c]
add ecx, edi
mov edi, dword [eax + esi + 0xc980]
mov esi, dword [esp + 0x24]
add edx, edi
mov dword [esp + 0x40], edx
movzx esi, word [esi + ebp*2 + 0x60]
mov edx, esi
shl edx, 4
mov edi, dword [eax + edx + 0xc978]
mov esi, edx
mov edx, dword [eax + edx + 0xc97c]
add edi, ebx
mov ebx, dword [eax + esi + 0xc980]
add ecx, edx
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
add edx, ebx
movzx ebx, word [esi + ebp*2 + 0x62]
mov esi, ebx
shl esi, 4
mov ebx, dword [eax + esi + 0xc97c]
add ecx, ebx
mov ebx, dword [eax + esi + 0xc980]
mov dword [esp + 0x98], ecx
mov esi, dword [eax + esi + 0xc978]
add edx, ebx
add edi, esi
mov dword [esp + 0x94], edi
mov dword [esp + 0x9c], edx
mov dword [esp + 0x1c0], eax
mov edi, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x2c]
mov edx, 0xffffffff
mov ebx, 0x3b9ac9ff
lea esi, [esi]
lea esi, [esi]
movzx esi, word [esp + ecx*2 + 0x94]
cmp ebx, esi
cmovg ebx, esi
cmovg edx, ecx
inc ecx
cmp eax, ecx
jne 0x454690
mov dword [esp + 0x24], edi
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c0]
mov byte [eax + ebx + 0x668], dl
inc ebx
cmp dword [esp + 0x2c], 6
mov dword [esp + 0x3c], ebx
jne 0x454af8
mov ecx, dword [esp + 0x28]
sub ecx, ebp
cmp ecx, 0x31
jne 0x454af8
mov esi, dword [esp + 0x24]
mov ecx, edx
shl ecx, 7
add edx, ecx
add edx, edx
movzx ebx, word [esi + ebp*2]
lea ecx, [ebx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 2]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 4]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 6]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 8]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0xa]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0xc]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0xe]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x10]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x12]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x14]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x16]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x18]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x1a]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x1c]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x1e]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x20]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x22]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x24]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x26]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x28]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x2a]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x2c]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x2e]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x30]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x32]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x34]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x36]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x38]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x3a]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x3c]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x3e]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x40]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x42]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x44]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x46]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x48]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x4a]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x4c]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x4e]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x50]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x52]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x54]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x56]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x58]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x5a]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x5c]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x5e]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x60]
lea ecx, [ecx + edx + 0x2c50]
inc dword [eax + ecx*4 + 8]
movzx ecx, word [esi + ebp*2 + 0x62]
lea edx, [ecx + edx + 0x2c50]
inc dword [eax + edx*4 + 8]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x30], esi
jle 0x454b47
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
lea ebx, [ebp + 0x31]
mov dword [esp + 0x28], ebx
cmp ebx, esi
jl 0x453d90
mov ebx, dword [esp + 0x54]
lea edx, [esp + 0x94]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x34], esi
cmp ebx, 8
jb 0x453dab
mov edi, dword [esp + 0x24]
mov ecx, ebx
xor edx, edx
and ecx, 0xfffffff8
xor ebx, ebx
xor esi, esi
mov dword [esp + edx + 0x94], ebx
mov dword [esp + edx + 0x98], esi
add edx, 8
cmp edx, ecx
jb 0x454a5a
mov dword [esp + 0x24], edi
lea esi, [esp + 0x94]
add edx, esi
jmp 0x453dab
cmp dword [esp + 0x28], ebp
jl 0x454667
mov dword [esp + 0x40], ebp
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
lea ecx, [esi + ebp*2]
mov ebp, dword [esp + 0x50]
lea edi, [esi + edi*2 + 2]
lea esi, [esi]
movzx edx, word [ecx]
lea ebx, [eax + edx + 0x930c]
lea edx, [esp + 0x94]
lea esi, [esi]
lea esi, [esi]
nop
movzx esi, byte [ebx]
add ebx, 0x102
add word [edx], si
add edx, 2
cmp ebp, edx
jne 0x454ad0
add ecx, 2
cmp edi, ecx
jne 0x454ab0
mov ebp, dword [esp + 0x40]
jmp 0x454667
cmp dword [esp + 0x28], ebp
jl 0x454a06
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
lea ecx, [esi + ebp*2]
mov ebp, esi
lea ebx, [esi + edi*2 + 2]
mov esi, edx
shl esi, 7
mov edi, ebp
add esi, edx
add esi, esi
nop
movzx edx, word [ecx]
add ecx, 2
lea edx, [edx + esi + 0x2c50]
inc dword [eax + edx*4 + 8]
cmp ebx, ecx
jne 0x454b20
mov dword [esp + 0x24], edi
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x30], esi
jg 0x454a14
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x44]
lea esi, [esi]
mov dword [esp + 4], ebx
mov eax, 0x14
add ebx, 0x408
mov dword [esp], esi
add esi, 0x102
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebp
call fcn.00455680
cmp edi, esi
jne 0x454b60
dec dword [esp + 0x74]
je 0x454bd4
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax + 0x25c]
mov dword [esp + 0x30], eax
jmp 0x453cb5
mov dword [edi], 0
sub edx, 4
add edi, 4
jmp 0x453d32
mov word [edi], 0
sub edx, 2
add edi, 2
jmp 0x453d26
mov byte [esi], 0
lea edi, [esi + 1]
lea edx, [ebx - 1]
jmp 0x453d1a
mov esi, dword [esp + 0x1c0]
xor eax, eax
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x60]
mov byte [ecx + eax], al
inc eax
cmp eax, edx
jne 0x454be5
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x454c50
mov dword [esp + 0x1c0], esi
lea ebp, [esi + 0x668]
movzx edx, byte [esp + 0xa0]
lea edi, [esi + eax + 0x668]
mov esi, dword [esp + 0x60]
movzx ebx, byte [ebp]
cmp dl, bl
je 0x4554a1
xor eax, eax
lea esi, [esi]
lea esi, [esi]
inc eax
mov cl, dl
movzx edx, byte [esi + eax]
mov byte [esi + eax], cl
cmp bl, dl
jne 0x454c30
mov byte [ebp + 0x4652], al
inc ebp
cmp edi, ebp
jne 0x454c15
mov esi, dword [esp + 0x1c0]
mov dword [esp + 0x1c0], esi
mov eax, dword [esp + 0x64]
mov edi, esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x5c]
lea ebp, [esi + eax + 2]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x30], ebp
add eax, esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x24], eax
xor ebx, ebx
test esi, esi
mov ecx, 0x20
jle 0x454cb6
mov edx, edi
xor ebx, ebx
mov ecx, 0x20
lea esi, [esi]
lea esi, [esi]
movzx eax, byte [edx + 0x930c]
cmp ebx, eax
cmovl ebx, eax
cmp ecx, eax
cmovg ecx, eax
inc edx
cmp ebp, edx
jne 0x454ca0
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x28]
lea eax, [edi + 0x930c]
mov dword [esp + 4], eax
add edi, 0x102
add ebp, 0x102
mov dword [esp + 0x10], esi
mov dword [esp + 8], ecx
mov dword [esp], ebx
call fcn.00455af0
mov eax, ebx
add eax, 0x408
cmp dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
jne 0x454c7e
mov esi, dword [esp + 0x1c0]
xor ecx, ecx
xor ebp, ebp
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x60]
xor ebx, ebx
mov dword [esp + 0xac], ebp
xor edi, edi
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], edi
lea ebp, [esi + 0x60]
mov edi, ecx
mov edx, ebp
lea ebx, [esi + 0x160]
lea esi, [esi]
lea esi, [esi]
nop
lea eax, [edx - 0x10]
lea esi, [esi]
lea esi, [esi]
cmp byte [eax], 0
je 0x454d58
mov byte [ecx], 1
inc eax
cmp edx, eax
jne 0x454d50
add edx, 0x10
inc ecx
cmp ebx, edx
jne 0x454d40
mov eax, dword [esp + 0x60]
lea ebx, [eax + 0x10]
jmp 0x454d84
mov ecx, 1
mov edx, 1
mov eax, esi
inc edi
call fcn.00453620
cmp ebx, edi
je 0x454d9c
cmp byte [edi], 0
jne 0x454d6e
xor ecx, ecx
mov edx, 1
mov eax, esi
inc edi
call fcn.00453620
cmp ebx, edi
jne 0x454d84
mov eax, dword [esp + 0x60]
xor edi, edi
jmp 0x454db1
inc edi
add ebp, 0x10
cmp edi, 0x10
je 0x454e01
cmp byte [eax + edi], 0
je 0x454da8
lea ebx, [ebp - 0x10]
mov edx, eax
mov eax, esi
mov esi, edx
jmp 0x454ddc
mov ecx, 1
mov edx, 1
call fcn.00453620
inc ebx
cmp ebp, ebx
je 0x454df2
cmp byte [ebx], 0
jne 0x454dc8
xor ecx, ecx
mov edx, 1
call fcn.00453620
inc ebx
cmp ebp, ebx
jne 0x454ddc
inc edi
mov ebx, esi
add ebp, 0x10
cmp edi, 0x10
mov esi, eax
mov eax, ebx
jne 0x454db1
mov ecx, dword [esp + 0x6c]
mov edx, 3
mov eax, esi
call fcn.00453620
mov ebx, dword [esp + 0x3c]
mov edx, 0xf
mov ecx, ebx
call fcn.00453620
test ebx, ebx
je 0x454e6c
lea edi, [esi + 0x4cba]
lea ebx, [esi + ebx + 0x4cba]
xor ebp, ebp
cmp byte [edi], 0
je 0x454e59
lea esi, [esi]
mov eax, esi
mov ecx, 1
mov edx, 1
inc ebp
call fcn.00453620
movzx eax, byte [edi]
cmp ebp, eax
jl 0x454e40
xor ecx, ecx
mov edx, 1
mov eax, esi
inc edi
call fcn.00453620
cmp ebx, edi
jne 0x454e32
mov eax, esi
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x84]
movzx ebx, byte [esi + 0x930c]
mov edx, 5
mov edi, esi
mov ecx, ebx
call fcn.00453620
mov edx, dword [esp + 0x44]
test edx, edx
jle 0x454efc
lea esi, [esi]
lea esi, [esi]
movzx edx, byte [edi + 0x930c]
cmp edx, ebx
jle 0x454ee7
lea esi, [esi]
nop
mov edx, 2
mov ecx, 2
call fcn.00453620
movzx edx, byte [edi + 0x930c]
inc ebx
cmp ebx, edx
jl 0x454eb0
cmp ebx, edx
jle 0x454eeb
nop
mov edx, 2
mov ecx, 3
call fcn.00453620
movzx edx, byte [edi + 0x930c]
dec ebx
cmp ebx, edx
jg 0x454ed0
xor ecx, ecx
mov edx, 1
call fcn.00453620
inc edi
cmp edi, ebp
jne 0x454ea0
add esi, 0x102
add ebp, 0x102
cmp dword [esp + 0x24], esi
jne 0x454e79
mov esi, eax
mov eax, dword [eax + 0x25c]
lea ebx, [esi + 0x668]
mov dword [esp + 0x30], eax
test eax, eax
jle 0x4539d2
mov dword [esp + 0x28], ebx
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x4c]
jmp 0x455439
cmp dword [esp + 0x2c], 6
lea eax, [ebx + 0x32]
mov dword [esp + 0x30], eax
jne 0x455460
mov eax, dword [esp + 0x28]
movzx edx, byte [eax]
mov eax, edx
shl eax, 7
add eax, edx
lea ebp, [esi + eax*8 + 0x9918]
lea edx, [esi + eax*2 + 0x930c]
lea eax, [ebx + ebx]
mov dword [esp + 0x24], eax
movzx eax, word [edi + ebx*2]
mov ebx, edx
mov ecx, dword [ebp + eax*4]
movzx edx, byte [edx + eax]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 2]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 4]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 6]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 8]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0xa]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0xc]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0xe]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x10]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x12]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x14]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x16]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x18]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x1a]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x1c]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x1e]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x20]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x22]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x24]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x26]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x28]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x2a]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x2c]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x2e]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x30]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x32]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x34]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x36]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x38]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x3a]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x3c]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x3e]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x40]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x42]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x44]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x46]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x48]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x4a]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x4c]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x4e]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x50]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x52]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x54]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x56]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x58]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x5a]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x5c]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x5e]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x60]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov eax, dword [esp + 0x24]
movzx eax, word [edi + eax + 0x62]
movzx edx, byte [ebx + eax]
mov ecx, dword [ebp + eax*4]
mov eax, esi
call fcn.00453620
mov ebx, dword [esp + 0x30]
mov eax, dword [esi + 0x25c]
inc dword [esp + 0x28]
cmp eax, ebx
mov dword [esp + 0x30], eax
jle 0x4539d2
lea ebp, [ebx + 0x31]
cmp ebp, eax
jl 0x454f3d
cmp dword [esp + 0x2c], 6
lea ebp, [eax - 1]
jne 0x45545b
mov edx, ebp
sub edx, ebx
cmp edx, 0x31
je 0x454f4f
cmp ebp, ebx
jl 0x45549b
nop
mov eax, dword [esp + 0x28]
movzx edx, word [edi + ebx*2]
inc ebx
movzx ecx, byte [eax]
mov eax, ecx
shl eax, 7
add eax, ecx
add eax, eax
lea ecx, [edx + eax + 0x2644]
add eax, esi
movzx edx, byte [edx + eax + 0x930c]
mov eax, esi
mov ecx, dword [esi + ecx*4 + 8]
call fcn.00453620
cmp ebx, ebp
jle 0x455460
mov eax, dword [esi + 0x25c]
mov ebx, dword [esp + 0x30]
jmp 0x455429
xor eax, eax
inc ebp
mov byte [ebp + 0x4651], al
cmp edi, ebp
jne 0x454c15
jmp 0x454c49
mov edi, dword [esp + 0x44]
test edi, edi
jle 0x453d4b
mov eax, dword [esp + 0x1c0]
mov ebx, dword [esp + 0x5c]
lea esi, [eax + 0xc978]
lea ecx, [eax + ebx + 0x930e]
mov eax, dword [esp + 0x70]
movzx edi, byte [eax + 0x102]
inc eax
add esi, 0x10
movzx ebp, byte [eax - 1]
shl edi, 0x10
or edi, ebp
mov dword [esi - 0x10], edi
movzx edi, byte [eax + 0x305]
movzx ebp, byte [eax + 0x203]
shl edi, 0x10
or edi, ebp
mov dword [esi - 0xc], edi
movzx edi, byte [eax + 0x509]
movzx ebp, byte [eax + 0x407]
shl edi, 0x10
or edi, ebp
mov dword [esi - 8], edi
cmp ecx, eax
jne 0x4554df
jmp 0x453d4b
mov byte [edi], 0
jmp 0x4537d3
mov word [edi], 0
add edi, 2
test dl, 1
je 0x4537d3
jmp 0x45552b
mov dword [edi], 0
add edi, 4
test dl, 2
je 0x4537ca
jmp 0x455533
xor eax, eax
xor edx, edx
mov dword [esi + 0x254], eax
mov dword [esi + 0x250], edx
jmp 0x4539d2
mov ebx, 3
mov edi, 3
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x2c], edi
jmp 0x453aea
test edi, 1
jne 0x45563d
test edi, 2
jne 0x455661
test edi, 4
jne 0x455650
mov ecx, edx
xor eax, eax
shr ecx, 2
and edx, 3
rep stosd dword es:[edi], eax
jmp 0x4537b8
mov edx, 2
mov ecx, 2
jmp 0x453898
mov byte [ebp], 0xf
lea eax, [ebp + 1]
mov ecx, dword [esp + 0x3c]
jmp 0x45399d
mov eax, dword [esp + 0x58]
lea ebx, [ebp + 1]
mov dword [esp + 0x30], ebx
lea eax, [eax + ebp*2]
jmp 0x453911
mov word [eax], 0xf0f
sub ecx, 2
add eax, 2
jmp 0x4539a5
mov edx, 4
mov ecx, 4
mov dword [esp + 0x6c], edx
mov dword [esp + 0x2c], ecx
jmp 0x453aea
add eax, 2
mov dword [esp + 0x44], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x60], eax
jmp 0x4537f8
mov edx, 1
mov eax, dword [esp + 0x58]
mov dword [esp + 0x30], edx
jmp 0x453911
mov byte [esi + 0x260], 0
lea edi, [esi + 0x261]
dec edx
jmp 0x455592
mov dword [edi], 0
sub edx, 4
add edi, 4
jmp 0x4555aa
mov word [edi], 0
sub edx, 2
add edi, 2
jmp 0x45559e