Function at 0x4bca50
Capabilities:
Enumerate pe sections

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x4bca80
test dword [0x87ed4c], 0xffffffff
jne 0x4bdc50
call fcn.007663a0
jmp fcn.004bca50
push edi
push esi
push ebp
push ebx
sub esp, 0x168
mov ebx, ecx
mov ebp, edx
mov edi, eax
movzx edx, byte [edi + 0x43]
cmp edx, 1
jne 0x4bcb25
movzx eax, byte [edi + 0x42]
test eax, eax
je 0x4bcb04
mov eax, dword [edi + 0x60]
movzx ecx, byte [eax + 2]
test ecx, ecx
je 0x4bcb04
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x14], ecx
sub ecx, dword [esp + 0x184]
mov esi, eax
sub esi, dword [esp + 0x188]
or ecx, esi
je 0x4bcb0b
movzx ecx, byte [edi + 0x41]
test ecx, ecx
je 0x4bcb04
mov ecx, dword [esp + 0x14]
sub ecx, dword [esp + 0x184]
sbb eax, dword [esp + 0x188]
jge 0x4bcb25
mov edx, dword [esp + 0x190]
mov dword [edx], 0xffffffff
xor eax, eax
add esp, 0x168
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [edi]
mov esi, dword [eax + 4]
jmp 0x4bcb4c
mov edx, dword [esp + 0x190]
mov dword [edx], 0
xor eax, eax
add esp, 0x168
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [edi]
cmp edx, 2
mov esi, dword [eax + 4]
jl 0x4bcb4c
cmp edx, 3
je 0x4bd895
mov eax, dword [edi + 0x44]
test eax, eax
je 0x4bcb44
call fcn.004c69c4
xor edx, edx
mov dword [edi + 0x44], edx
mov byte [edi + 0x43], dl
movsx edx, word [edi + 0x5c]
test edx, edx
jl 0x4bdbf9
jle 0x4bcb94
mov esi, 1
mov dword [esp + 0x13c], ebx
mov eax, dword [edi + esi*4 + 0x60]
test eax, eax
je 0x4bcb88
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4bcb88
mov ebx, dword [eax + 0x10]
call fcn.0057a950
mov eax, ebx
call fcn.0057aac0
movsx edx, word [edi + 0x5c]
inc esi
cmp esi, edx
jle 0x4bcb66
mov ebx, dword [esp + 0x13c]
mov ecx, dword [edi + 0x60]
xor eax, eax
mov word [edi + 0x5c], ax
xor edx, edx
mov word [edi + 0xb0], dx
mov word [edi + 0x3e], dx
mov word [edi + 0x41], dx
movzx esi, word [ecx + 0x10]
test esi, esi
jne 0x4bcc0b
movzx edx, byte [ecx + 3]
test edx, edx
jne 0x4bcc14
cmp dword [ecx + 0x48], 1
je 0x4bcbd4
mov eax, 0xb
add esp, 0x168
pop ebx
pop ebp
pop esi
pop edi
ret
movzx esi, byte [ecx + 5]
mov ecx, dword [ecx + 0x40]
movzx edx, byte [esi + ecx + 8]
movzx eax, byte [esi + ecx + 9]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [esi + ecx + 0xa]
movzx ecx, byte [esi + ecx + 0xb]
shl eax, 8
or edx, eax
or edx, ecx
mov byte [edi + 0x43], 1
mov eax, edi
call fcn.004b9440
jmp 0x4bcc19
jle 0x4bcc14
mov edx, 1
jmp 0x4bcc16
xor edx, edx
mov byte [edi + 0x43], dl
test eax, eax
jne 0x4bd88a
movzx eax, byte [edi + 0x43]
test eax, eax
jne 0x4bcc43
mov edx, dword [esp + 0x190]
mov dword [edx], 0xffffffff
xor eax, eax
add esp, 0x168
pop ebx
pop ebp
pop esi
pop edi
ret
lea eax, [edi + 0x28]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x14c], ebp
mov dword [esp + 0x13c], ebx
xor ebx, ebx
movsx edx, word [edi + 0x5c]
cmp dword [esp + 0x13c], 0
mov eax, dword [edi + edx*4 + 0x60]
movzx esi, word [eax + 0x10]
lea ecx, [esi - 1]
je 0x4bcc7b
movzx ebp, cx
jmp 0x4bcc89
mov ebp, ecx
shr ebp, 0x1f
lea esi, [ebp + esi - 1]
shr esi, 1
movzx ebp, si
mov word [edi + edx*2 + 0xb0], bp
mov ebp, ebx
mov dword [esp + 0x158], ebp
mov dword [esp + 0x154], ecx
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edi
jmp 0x4bccd9
mov edx, ecx
mov eax, dword [esp + 0x158]
mov ebp, dword [esp + 0x164]
lea ebx, [eax + edx]
mov ecx, ebx
shr ecx, 0x1f
add ebx, ecx
shr ebx, 1
movsx esi, word [ebp + 0x5c]
mov word [ebp + esi*2 + 0xb0], bx
mov edx, dword [esp + 0x164]
mov esi, dword [esp + 0x160]
xor eax, eax
movsx ebp, word [edx + 0x5c]
movzx ebp, word [edx + ebp*2 + 0xb0]
mov word [edx + 0x3e], ax
mov eax, dword [esi + 0x40]
movzx edi, word [esi + 0xc]
movzx edx, byte [esi + 6]
mov dword [esp + 0x15c], edx
lea ecx, [eax + ebp*2]
add eax, edx
movzx edx, word [esi + 0x12]
movzx esi, byte [esi + 2]
movzx ebx, byte [edi + ecx]
movzx ecx, byte [edi + ecx + 1]
shl ebx, 8
or ebx, ecx
and edx, ebx
lea ebx, [eax + edx]
test esi, esi
je 0x4bcdfa
mov ecx, dword [esp + 0x160]
movzx esi, byte [ecx + 4]
test esi, esi
je 0x4bcd8e
movzx ecx, byte [ebx]
cmp ecx, 0x80
jge 0x4bcd54
mov eax, 1
jmp 0x4bcd8c
lea eax, [eax + edx + 1]
movzx edx, byte [eax]
test edx, 0x80
je 0x4bcd84
lea edx, [eax + 1]
movzx ecx, byte [edx]
test ecx, 0x80
je 0x4bcd7d
dec eax
lea edx, [esp + 0x4c]
call fcn.004bf330
jmp 0x4bcd89
mov eax, 3
jmp 0x4bcd89
mov eax, 2
movzx eax, al
add ebx, eax
mov eax, ebx
lea edx, [esp + 0x118]
call fcn.004bf330
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov ebx, eax
sub ebx, dword [esp + 0x184]
mov ecx, edx
sub ecx, dword [esp + 0x188]
or ebx, ecx
jne 0x4bcdc4
xor ebx, ebx
jmp 0x4bcde4
mov ecx, eax
sub ecx, dword [esp + 0x184]
mov ebx, edx
sbb ebx, dword [esp + 0x188]
jge 0x4bcddf
mov ebx, 0xffffffff
jmp 0x4bcde4
mov ebx, 1
mov ecx, dword [esp + 0x164]
mov byte [ecx + 0x42], 1
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edx
jmp 0x4bd83b
movzx ecx, byte [ebx]
mov dword [esp + 0x150], ecx
test ecx, 0x80
jne 0x4bd081
mov ecx, dword [esp + 0x160]
movzx esi, word [ecx + 8]
cmp esi, dword [esp + 0x150]
jl 0x4bd081
mov esi, dword [esp + 0x14c]
lea ebx, [eax + edx + 1]
mov edx, dword [esi]
movzx eax, byte [edx + 4]
mov ecx, dword [edx]
mov dword [esp + 0xec], ebx
mov dword [esp + 0xd8], edx
movzx edx, byte [ebx]
cmp edx, 0x80
mov byte [esp + 0x43], al
mov dword [esp + 0x34], ecx
jge 0x4bce6a
mov dword [esp + 0xcc], edx
mov esi, 1
jmp 0x4bce82
mov eax, ebx
lea edx, [esp + 0xcc]
call fcn.00497b90
mov edx, dword [esp + 0xcc]
movzx esi, al
mov eax, dword [esp + 0x14c]
movzx eax, word [eax + 6]
mov dword [esp + 0xd4], edx
test al, 4
je 0x4bcea0
dec edx
mov dword [esp + 0xcc], edx
mov ecx, dword [esp + 0xd8]
xor ebx, ebx
movzx edi, word [ecx + 6]
mov dword [esp + 0xdc], edi
cmp esi, edx
jae 0x4bd05c
xor eax, eax
mov dword [esp + 0xd0], edx
mov edi, ebx
mov ebx, eax
mov dword [esp + 0x114], ebp
mov ebp, dword [esp + 0xd4]
mov edx, dword [esp + 0x14c]
movzx ecx, word [edx + 4]
cmp ebx, ecx
jge 0x4bd89d
mov edx, dword [esp + 0xec]
movzx edx, byte [edx + esi]
cmp edx, 0x80
jge 0x4bcf07
mov ecx, 1
jmp 0x4bcfbb
mov ecx, dword [esp + 0xec]
movzx edx, byte [esi + ecx]
lea ecx, [ecx + esi + 1]
mov dword [esp + 0x8c], ecx
movzx ecx, byte [ecx]
mov dword [esp + 0x84], ecx
test ecx, 0x80
je 0x4bcf9b
mov ecx, dword [esp + 0x8c]
shl edx, 0xe
movzx ecx, byte [ecx + 1]
or edx, ecx
test edx, 0x80
je 0x4bcf79
mov eax, dword [esp + 0x8c]
dec eax
lea edx, [esp + 0x14]
mov dword [esp + 0x110], edi
call fcn.004bf330
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x14]
xor ecx, ecx
or ecx, dword [esp + 0x18]
je 0x4bcfb3
mov edx, 0xffffffff
jmp 0x4bcfb3
mov ecx, dword [esp + 0x84]
and edx, 0x1fc07f
and ecx, 0x7f
shl ecx, 7
or edx, ecx
mov dword [esp + 0x88], 3
jmp 0x4bcfb3
and edx, 0x7f
shl edx, 7
or edx, dword [esp + 0x84]
mov dword [esp + 0x88], 2
movzx ecx, byte [esp + 0x88]
add esi, ecx
cmp ebp, dword [esp + 0x150]
jl 0x4bcfe1
cmp edx, 0xc
jae 0x4bcfd4
movzx ecx, byte [edx + 0x78d128]
jmp 0x4bcfd9
lea ecx, [edx - 0xc]
shr ecx, 1
test ecx, ecx
ja 0x4bd89d
mov edi, dword [esp + 0xec]
lea eax, [edi + ebp]
lea ecx, [esp + 0x24]
call fcn.004bee20
add ebp, eax
cmp ebx, dword [esp + 0xdc]
jge 0x4bd00c
mov edx, dword [esp + 0xd8]
mov ecx, dword [edx + ebx*4 + 0xc]
jmp 0x4bd00e
xor ecx, ecx
mov edi, dword [esp + 0x14c]
lea edx, [ebx + ebx*4]
lea eax, [esp + 0x24]
mov edi, dword [edi + 0x10]
lea edx, [edi + edx*8]
call fcn.004bf030
mov edi, eax
test edi, edi
jne 0x4bd8bd
mov edx, dword [esp + 0xcc]
inc ebx
mov dword [esp + 0xd0], edx
cmp esi, edx
jb 0x4bced7
mov ebp, dword [esp + 0x114]
mov eax, dword [esp + 0x14c]
mov ebx, edi
movzx eax, word [eax + 6]
test al, 8
je 0x4bd06a
mov ebx, 0xffffffff
jmp 0x4bd83b
test al, 0x10
jne 0x4bd83b
mov eax, 1
cmp esi, edx
cmovb ebx, eax
jmp 0x4bd83b
movzx ecx, byte [ebx + 1]
mov dword [esp + 0x148], ecx
test ecx, 0x80
jne 0x4bd315
mov esi, dword [esp + 0x150]
mov edi, dword [esp + 0x160]
and esi, 0x7f
shl esi, 7
add ecx, esi
movzx esi, word [edi + 8]
mov dword [esp + 0x148], ecx
cmp ecx, esi
jg 0x4bd315
mov esi, dword [esp + 0x14c]
lea ebx, [eax + edx + 2]
mov edx, dword [esi]
movzx eax, byte [edx + 4]
mov ecx, dword [edx]
mov dword [esp + 0x108], ebx
mov dword [esp + 0x100], edx
movzx edx, byte [ebx]
cmp edx, 0x80
mov byte [esp + 0x7b], al
mov dword [esp + 0x6c], ecx
jge 0x4bd103
mov dword [esp + 0xf4], edx
mov edi, 1
jmp 0x4bd11b
mov eax, ebx
lea edx, [esp + 0xf4]
call fcn.00497b90
mov edx, dword [esp + 0xf4]
movzx edi, al
mov eax, esi
movzx eax, word [eax + 6]
mov dword [esp + 0xfc], edx
test al, 4
je 0x4bd134
dec edx
mov dword [esp + 0xf4], edx
mov ecx, dword [esp + 0x100]
xor ebx, ebx
movzx esi, word [ecx + 6]
mov dword [esp + 0x104], esi
cmp edi, edx
jae 0x4bd2f0
xor eax, eax
mov dword [esp + 0xf8], edx
mov esi, ebx
mov ebx, eax
mov dword [esp + 0x114], ebp
mov ebp, dword [esp + 0xfc]
mov edx, dword [esp + 0x14c]
movzx ecx, word [edx + 4]
cmp ebx, ecx
jge 0x4bd937
mov edx, dword [esp + 0x108]
movzx edx, byte [edx + edi]
cmp edx, 0x80
jge 0x4bd19b
mov ecx, 1
jmp 0x4bd24f
mov ecx, dword [esp + 0x108]
movzx edx, byte [edi + ecx]
lea ecx, [ecx + edi + 1]
mov dword [esp + 0xc4], ecx
movzx ecx, byte [ecx]
mov dword [esp + 0xbc], ecx
test ecx, 0x80
je 0x4bd22f
mov ecx, dword [esp + 0xc4]
shl edx, 0xe
movzx ecx, byte [ecx + 1]
or edx, ecx
test edx, 0x80
je 0x4bd20d
mov eax, dword [esp + 0xc4]
dec eax
lea edx, [esp + 0x1c]
mov dword [esp + 0x110], esi
call fcn.004bf330
mov dword [esp + 0xc0], eax
mov edx, dword [esp + 0x1c]
xor ecx, ecx
or ecx, dword [esp + 0x20]
je 0x4bd247
mov edx, 0xffffffff
jmp 0x4bd247
mov ecx, dword [esp + 0xbc]
and edx, 0x1fc07f
and ecx, 0x7f
shl ecx, 7
or edx, ecx
mov dword [esp + 0xc0], 3
jmp 0x4bd247
and edx, 0x7f
shl edx, 7
or edx, dword [esp + 0xbc]
mov dword [esp + 0xc0], 2
movzx ecx, byte [esp + 0xc0]
add edi, ecx
cmp ebp, dword [esp + 0x148]
jl 0x4bd275
cmp edx, 0xc
jae 0x4bd268
movzx ecx, byte [edx + 0x78d128]
jmp 0x4bd26d
lea ecx, [edx - 0xc]
shr ecx, 1
test ecx, ecx
ja 0x4bd937
mov esi, dword [esp + 0x108]
lea eax, [esi + ebp]
lea ecx, [esp + 0x5c]
call fcn.004bee20
add ebp, eax
cmp ebx, dword [esp + 0x104]
jge 0x4bd2a0
mov edx, dword [esp + 0x100]
mov ecx, dword [edx + ebx*4 + 0xc]
jmp 0x4bd2a2
xor ecx, ecx
mov esi, dword [esp + 0x14c]
lea edx, [ebx + ebx*4]
lea eax, [esp + 0x5c]
mov esi, dword [esi + 0x10]
lea edx, [esi + edx*8]
call fcn.004bf030
mov esi, eax
test esi, esi
jne 0x4bd957
mov edx, dword [esp + 0xf4]
inc ebx
mov dword [esp + 0xf8], edx
cmp edi, edx
jb 0x4bd16b
mov ebp, dword [esp + 0x114]
mov eax, dword [esp + 0x14c]
mov ebx, esi
movzx eax, word [eax + 6]
test al, 8
je 0x4bd2fe
mov ebx, 0xffffffff
jmp 0x4bd83b
test al, 0x10
jne 0x4bd83b
mov eax, 1
cmp edi, edx
cmovb ebx, eax
jmp 0x4bd83b
sub ebx, dword [esp + 0x15c]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x160]
mov dword [eax + 0x20], ebx
movzx edx, byte [ecx + 6]
movzx esi, byte [ecx + 2]
mov dword [esp + 0x134], edx
test esi, esi
je 0x4bd3c9
mov eax, ecx
movzx edx, byte [eax + 4]
test edx, edx
je 0x4bd38f
mov eax, dword [esp + 0x134]
add eax, ebx
movzx esi, byte [eax]
cmp esi, 0x80
jge 0x4bd370
mov dword [esp + 0xf0], esi
mov eax, 1
jmp 0x4bd386
lea edx, [esp + 0xf0]
call fcn.00497b90
mov esi, dword [esp + 0xf0]
movzx eax, al
add dword [esp + 0x134], eax
jmp 0x4bd39e
mov dword [esp + 0xf0], 0
xor eax, eax
xor esi, esi
add ebx, dword [esp + 0x134]
mov edx, dword [esp + 0x10c]
mov eax, ebx
call fcn.004bf330
mov edx, dword [esp + 0x164]
mov dword [edx + 0x30], esi
movzx ebx, al
add ebx, dword [esp + 0x134]
jmp 0x4bd420
add ebx, dword [esp + 0x134]
mov dword [eax + 0x30], 0
movzx esi, byte [ebx]
cmp esi, 0x80
jge 0x4bd3f0
mov dword [esp + 0xf0], esi
mov ebx, 1
jmp 0x4bd408
mov eax, ebx
lea edx, [esp + 0xf0]
call fcn.00497b90
mov esi, dword [esp + 0xf0]
movzx ebx, al
add ebx, dword [esp + 0x134]
mov eax, dword [esp + 0x164]
mov dword [eax + 0x28], esi
mov dword [eax + 0x2c], 0
mov edx, dword [esp + 0x164]
mov ecx, dword [esp + 0x160]
mov dword [edx + 0x34], esi
mov word [edx + 0x38], bx
movzx edi, word [ecx + 8]
mov dword [esp + 0x130], edi
cmp esi, edi
ja 0x4bd469
mov ecx, edx
mov word [ecx + 0x3a], si
xor eax, eax
movzx edx, bx
add edx, esi
mov word [ecx + 0x3c], ax
mov esi, 4
test edx, 0xfffffffc
cmove edx, esi
mov word [ecx + 0x3e], dx
jmp 0x4bd4aa
mov edi, ecx
movzx ecx, word [edi + 0xa]
mov edx, dword [edi + 0x3c]
sub esi, ecx
mov eax, esi
movzx edi, word [edx + 0x16]
add edi, 0xfffffffc
xor edx, edx
div edi
add edx, ecx
movzx esi, dx
cmp edx, dword [esp + 0x130]
mov edx, dword [esp + 0x164]
cmovle ecx, esi
mov word [edx + 0x3a], cx
lea eax, [ebx + ecx]
lea ebx, [ebx + ecx + 4]
mov word [edx + 0x3c], ax
mov word [edx + 0x3e], bx
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x28]
mov dword [esp + 0x140], edx
test edx, edx
jle 0x4bd878
cmp dword [esp + 0x140], 0x7fffff00
jge 0x4bd878
cmp dword [0x830380], 0
je 0x4bd522
mov eax, dword [0x84f788]
test eax, eax
je 0x4bd4ee
push eax
call dword [0x8303c8]
pop ecx
mov eax, dword [esp + 0x140]
lea edx, [esp + 0xc8]
call fcn.0041ec40
mov eax, dword [0x84f788]
test eax, eax
je 0x4bd512
push eax
call dword [0x8303d0]
pop ecx
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x144], eax
jmp 0x4bd53e
push dword [esp + 0x140]
call dword [0x830398]
pop ecx
mov dword [esp + 0x144], eax
mov dword [esp + 0xc8], eax
cmp dword [esp + 0x144], 0
je 0x4bd878
mov ebx, eax
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x140]
mov dword [esp + 0xc], ebx
xor edx, edx
mov dword [esp + 0x10], 0
call fcn.004bf500
mov esi, eax
test esi, esi
jne 0x4bdbed
mov esi, dword [esp + 0x14c]
mov edx, dword [esi]
movzx eax, byte [edx + 4]
mov ecx, dword [edx]
mov dword [esp + 0x12c], edx
mov byte [esp + 0xb3], al
mov dword [esp + 0xa4], ecx
movzx edx, byte [ebx]
cmp edx, 0x80
jge 0x4bd5b6
mov dword [esp + 0x120], edx
mov esi, 1
jmp 0x4bd5ce
mov eax, ebx
lea edx, [esp + 0x120]
call fcn.00497b90
mov edx, dword [esp + 0x120]
movzx esi, al
mov eax, dword [esp + 0x14c]
movzx eax, word [eax + 6]
mov dword [esp + 0x128], edx
test al, 4
je 0x4bd5ec
dec edx
mov dword [esp + 0x120], edx
mov ecx, dword [esp + 0x12c]
xor ebx, ebx
movzx edi, word [ecx + 6]
mov dword [esp + 0x138], edi
cmp esi, edx
jae 0x4bd7ae
xor eax, eax
mov dword [esp + 0x124], edx
mov edi, ebx
mov ebx, eax
mov dword [esp + 0x114], ebp
mov ebp, dword [esp + 0x128]
mov edx, dword [esp + 0x14c]
movzx ecx, word [edx + 4]
cmp ebx, ecx
jge 0x4bd9d1
mov edx, dword [esp + 0x144]
movzx edx, byte [edx + esi]
cmp edx, 0x80
jge 0x4bd653
mov ecx, 1
jmp 0x4bd707
mov ecx, dword [esp + 0x144]
movzx edx, byte [esi + ecx]
lea ecx, [ecx + esi + 1]
mov dword [esp + 0xe8], ecx
movzx ecx, byte [ecx]
mov dword [esp + 0xe0], ecx
test ecx, 0x80
je 0x4bd6e7
mov ecx, dword [esp + 0xe8]
shl edx, 0xe
movzx ecx, byte [ecx + 1]
or edx, ecx
test edx, 0x80
je 0x4bd6c5
mov eax, dword [esp + 0xe8]
dec eax
lea edx, [esp + 0x54]
mov dword [esp + 0x110], edi
call fcn.004bf330
mov dword [esp + 0xe4], eax
mov edx, dword [esp + 0x54]
xor ecx, ecx
or ecx, dword [esp + 0x58]
je 0x4bd6ff
mov edx, 0xffffffff
jmp 0x4bd6ff
mov ecx, dword [esp + 0xe0]
and edx, 0x1fc07f
and ecx, 0x7f
shl ecx, 7
or edx, ecx
mov dword [esp + 0xe4], 3
jmp 0x4bd6ff
and edx, 0x7f
shl edx, 7
or edx, dword [esp + 0xe0]
mov dword [esp + 0xe4], 2
movzx ecx, byte [esp + 0xe4]
add esi, ecx
cmp ebp, dword [esp + 0x140]
jl 0x4bd72d
cmp edx, 0xc
jae 0x4bd720
movzx ecx, byte [edx + 0x78d128]
jmp 0x4bd725
lea ecx, [edx - 0xc]
shr ecx, 1
test ecx, ecx
ja 0x4bd9d1
mov edi, dword [esp + 0x144]
lea eax, [edi + ebp]
lea ecx, [esp + 0x94]
call fcn.004bee20
add ebp, eax
cmp ebx, dword [esp + 0x138]
jge 0x4bd75b
mov edx, dword [esp + 0x12c]
mov ecx, dword [edx + ebx*4 + 0xc]
jmp 0x4bd75d
xor ecx, ecx
mov edi, dword [esp + 0x14c]
lea edx, [ebx + ebx*4]
lea eax, [esp + 0x94]
mov edi, dword [edi + 0x10]
lea edx, [edi + edx*8]
call fcn.004bf030
mov edi, eax
test edi, edi
jne 0x4bdb4b
mov edx, dword [esp + 0x120]
inc ebx
mov dword [esp + 0x124], edx
cmp esi, edx
jb 0x4bd623
mov ebp, dword [esp + 0x114]
mov eax, dword [esp + 0x14c]
mov ebx, edi
movzx eax, word [eax + 6]
test al, 8
je 0x4bd7b9
mov ebx, 0xffffffff
jmp 0x4bd7c7
test al, 0x10
jne 0x4bd7c7
mov eax, 1
cmp esi, edx
cmovb ebx, eax
cmp dword [0x830380], 0
je 0x4bd82d
mov eax, dword [0x84f788]
test eax, eax
je 0x4bd7e1
push eax
call dword [0x8303c8]
pop ecx
push dword [esp + 0x144]
call dword [0x8303a4]
mov edx, dword [0x84f3a0]
push dword [esp + 0x148]
sub edx, eax
mov eax, dword [0x84f3c4]
mov dword [0x84f3a0], edx
cmp edx, eax
cmovge eax, edx
mov dword [0x84f3c4], eax
call dword [0x83039c]
add esp, 8
mov eax, dword [0x84f788]
test eax, eax
je 0x4bd83b
push eax
call dword [0x8303d0]
jmp 0x4bd83a
push dword [esp + 0x144]
call dword [0x83039c]
pop ecx
test ebx, ebx
je 0x4bd9f1
mov edx, dword [esp + 0x158]
mov ecx, dword [esp + 0x154]
lea eax, [ebp + 1]
dec ebp
test ebx, ebx
cmovl edx, eax
mov dword [esp + 0x158], edx
cmovge ecx, ebp
cmp edx, ecx
mov dword [esp + 0x154], ecx
jle 0x4bccb1
jmp 0x4bdbcb
mov esi, 7
mov eax, esi
add esp, 0x168
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x168
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [edi + 0x50]
jmp 0x4bcc19
mov edx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x114]
mov eax, dword [esp + 0x14c]
mov ebx, edi
movzx eax, word [eax + 6]
jmp 0x4bd05c
mov ebp, dword [esp + 0x114]
mov edx, dword [esp + 0xd8]
mov eax, ebx
mov ebx, edi
mov edx, dword [edx + 8]
test edx, edx
je 0x4bd8ec
cmp eax, dword [esp + 0xdc]
jge 0x4bd8ec
movzx edx, byte [edx + eax]
mov ecx, ebx
neg ecx
test edx, edx
cmovne ebx, ecx
mov edx, dword [esp + 0x14c]
mov ecx, 5
movzx edx, word [edx + 6]
btr edx, ecx
jae 0x4bd83b
mov ecx, dword [esp + 0x14c]
movzx ecx, word [ecx + 4]
dec ecx
cmp eax, ecx
jne 0x4bd83b
mov ecx, dword [esp + 0x14c]
mov eax, dword [esp + 0x28]
mov word [ecx + 6], dx
mov edx, dword [esp + 0x24]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jmp 0x4bd83b
mov edx, dword [esp + 0xf8]
mov ebp, dword [esp + 0x114]
mov eax, dword [esp + 0x14c]
mov ebx, esi
movzx eax, word [eax + 6]
jmp 0x4bd2f0
mov ebp, dword [esp + 0x114]
mov edx, dword [esp + 0x100]
mov eax, ebx
mov ebx, esi
mov edx, dword [edx + 8]
test edx, edx
je 0x4bd986
cmp eax, dword [esp + 0x104]
jge 0x4bd986
movzx edx, byte [edx + eax]
mov ecx, ebx
neg ecx
test edx, edx
cmovne ebx, ecx
mov edx, dword [esp + 0x14c]
mov ecx, 5
movzx edx, word [edx + 6]
btr edx, ecx
jae 0x4bd83b
mov ecx, dword [esp + 0x14c]
movzx ecx, word [ecx + 4]
dec ecx
cmp eax, ecx
jne 0x4bd83b
mov ecx, dword [esp + 0x14c]
mov eax, dword [esp + 0x60]
mov word [ecx + 6], dx
mov edx, dword [esp + 0x5c]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jmp 0x4bd83b
mov edx, dword [esp + 0x124]
mov ebp, dword [esp + 0x114]
mov eax, dword [esp + 0x14c]
mov ebx, edi
movzx eax, word [eax + 6]
jmp 0x4bd7ae
mov eax, dword [esp + 0x160]
mov edi, dword [esp + 0x164]
movzx edx, byte [eax + 2]
mov dword [esp + 0x110], ebx
xor ebx, ebx
test edx, edx
je 0x4bdb34
movzx edx, byte [eax + 3]
test edx, edx
jne 0x4bdb34
test edx, edx
je 0x4bda3e
mov eax, dword [esp + 0x110]
mov ebp, dword [esp + 0x190]
mov dword [ebp], eax
xor eax, eax
xor esi, esi
jmp 0x4bd87d
mov esi, dword [eax + 0x40]
movzx edx, word [eax + 0x10]
cmp ebp, edx
jl 0x4bda74
movzx eax, byte [eax + 5]
movzx edx, byte [eax + esi + 8]
movzx ecx, byte [eax + esi + 9]
shl edx, 0x18
shl ecx, 0x10
or edx, ecx
movzx ecx, byte [eax + esi + 0xa]
movzx esi, byte [eax + esi + 0xb]
shl ecx, 8
or edx, ecx
or edx, esi
je 0x4bda24
jmp 0x4bdab7
movzx ecx, word [eax + 0x12]
movzx eax, word [eax + 0xc]
lea eax, [eax + ebp*2]
movzx edx, byte [esi + eax]
movzx eax, byte [esi + eax + 1]
shl edx, 8
or edx, eax
and ecx, edx
movzx edx, byte [ecx + esi]
movzx eax, byte [ecx + esi + 1]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ecx + esi + 2]
movzx esi, byte [ecx + esi + 3]
shl eax, 8
or edx, eax
or edx, esi
je 0x4bda24
movsx eax, word [edi + 0x5c]
mov word [edi + eax*2 + 0xb0], bp
movsx ebp, word [edi + 0x5c]
mov eax, dword [edi + 4]
mov word [edi + 0x3e], bx
cmp ebp, 0x13
mov byte [edi + 0x42], bl
jl 0x4bdae8
mov esi, 0xb
test esi, esi
je 0x4bcc5d
jmp 0x4bd87d
lea ecx, [esp + 0x90]
call fcn.00586a80
mov esi, eax
test esi, esi
jne 0x4bdadb
mov edx, dword [esp + 0x90]
mov dword [edi + ebp*4 + 0x64], edx
mov word [edi + ebp*2 + 0xb2], bx
inc word [edi + 0x5c]
mov word [edi + 0x3e], bx
mov byte [edi + 0x42], bl
movzx eax, word [edx + 0x10]
test eax, eax
jle 0x4bdad6
movzx eax, byte [edx + 2]
mov ebp, dword [edi + ebp*4 + 0x60]
movzx edx, byte [ebp + 2]
cmp eax, edx
jne 0x4bdad6
mov esi, ebx
jmp 0x4bdadb
mov ebp, dword [esp + 0x190]
mov dword [ebp], 0
xor eax, eax
xor esi, esi
jmp 0x4bd87d
mov ebp, dword [esp + 0x114]
mov edx, dword [esp + 0x12c]
mov eax, ebx
mov ebx, edi
mov edx, dword [edx + 8]
test edx, edx
je 0x4bdb7a
cmp eax, dword [esp + 0x138]
jge 0x4bdb7a
movzx edx, byte [edx + eax]
mov ecx, ebx
neg ecx
test edx, edx
cmovne ebx, ecx
mov edx, dword [esp + 0x14c]
mov ecx, 5
movzx edx, word [edx + 6]
btr edx, ecx
jae 0x4bd7c7
mov ecx, dword [esp + 0x14c]
movzx ecx, word [ecx + 4]
dec ecx
cmp eax, ecx
jne 0x4bd7c7
mov ecx, dword [esp + 0x14c]
mov eax, dword [esp + 0x98]
mov word [ecx + 6], dx
mov edx, dword [esp + 0x94]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jmp 0x4bd7c7
mov ebp, edx
mov eax, dword [esp + 0x160]
mov edi, dword [esp + 0x164]
movzx edx, byte [eax + 3]
mov dword [esp + 0x110], ebx
xor ebx, ebx
jmp 0x4bda20
mov eax, ebx
call fcn.004c69c4
jmp 0x4bd87d
mov edx, dword [edi + 0x14]
lea ecx, [edi + 0x60]
mov eax, esi
call fcn.00586a80
test eax, eax
jne 0x4bdc3b
mov ecx, dword [edi + 0x60]
xor esi, esi
mov edx, 1
cmp dword [edi + 0x10], 0
mov word [edi + 0x5c], si
cmovne edx, esi
movzx esi, byte [ecx + 2]
cmp edx, esi
je 0x4bcb9d
mov eax, 0xb
add esp, 0x168
pop ebx
pop ebp
pop esi
pop edi
ret
mov byte [edi + 0x43], 0
jmp 0x4bcc19
push edi
push esi
push ebp
push ebx
sub esp, 0x170
mov esi, ecx
mov ebx, edx
mov ebp, eax
movzx edx, byte [ebp + 0x43]
cmp edx, 1
jne 0x4bdcf6
movzx eax, byte [ebp + 0x42]
test eax, eax
je 0x4bdcd4
mov eax, dword [ebp + 0x60]
movzx ecx, byte [eax + 2]
test ecx, ecx
je 0x4bdcd4
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x14], ecx
mov eax, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x18c]
mov edi, eax
sub edi, dword [esp + 0x190]
or ecx, edi
je 0x4bdcdc
movzx ecx, byte [ebp + 0x41]
test ecx, ecx
je 0x4bdcd4
mov ecx, dword [esp + 0x14]
sub ecx, dword [esp + 0x18c]
sbb eax, dword [esp + 0x190]
jge 0x4bdcf6
mov edx, dword [esp + 0x198]
mov dword [edx], 0xffffffff
xor eax, eax
add esp, 0x170
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [ebp]
mov edi, dword [eax + 4]
jmp 0x4bdd1e
mov edx, dword [esp + 0x198]
mov dword [edx], 0
xor eax, eax
add esp, 0x170
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [ebp]
mov edi, dword [eax + 4]
cmp edx, 2
jl 0x4bdd1e
cmp edx, 3
je 0x4bea53
mov eax, dword [ebp + 0x44]
test eax, eax
je 0x4bdd16
call fcn.004c69c4
xor edx, edx
mov dword [ebp + 0x44], edx
mov byte [ebp + 0x43], dl
movsx edx, word [ebp + 0x5c]
test edx, edx
jl 0x4bedd7
jle 0x4bdd66
mov edi, 1
mov dword [esp + 0x148], esi
mov eax, dword [ebp + edi*4 + 0x60]
test eax, eax
je 0x4bdd5a
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4bdd5a
mov esi, dword [eax + 0x10]
call fcn.0057a950
mov eax, esi
call fcn.0057aac0
movsx edx, word [ebp + 0x5c]
inc edi
cmp edi, edx
jle 0x4bdd38
mov esi, dword [esp + 0x148]
xor eax, eax
mov word [ebp + 0x5c], ax
mov ecx, dword [ebp + 0x60]
xor edx, edx
mov word [ebp + 0xb0], dx
mov word [ebp + 0x3e], dx
mov word [ebp + 0x41], dx
movzx edi, word [ecx + 0x10]
test edi, edi
jne 0x4bdddd
movzx edx, byte [ecx + 3]
test edx, edx
jne 0x4bdde6
cmp dword [ecx + 0x48], 1
je 0x4bdda6
mov eax, 0xb
add esp, 0x170
pop ebx
pop ebp
pop esi
pop edi
ret
movzx edi, byte [ecx + 5]
mov ecx, dword [ecx + 0x40]
movzx edx, byte [edi + ecx + 8]
shl edx, 0x18
movzx eax, byte [edi + ecx + 9]
shl eax, 0x10
or edx, eax
movzx eax, byte [edi + ecx + 0xa]
shl eax, 8
or edx, eax
movzx ecx, byte [edi + ecx + 0xb]
or edx, ecx
mov byte [ebp + 0x43], 1
mov eax, ebp
call fcn.004b9440
jmp 0x4bddeb
jle 0x4bdde6
mov edx, 1
jmp 0x4bdde8
xor edx, edx
mov byte [ebp + 0x43], dl
test eax, eax
jne 0x4bea48
movzx eax, byte [ebp + 0x43]
test eax, eax
jne 0x4bde15
mov edx, dword [esp + 0x198]
mov dword [edx], 0xffffffff
xor eax, eax
add esp, 0x170
pop ebx
pop ebp
pop esi
pop edi
ret
lea eax, [ebp + 0x28]
mov dword [esp + 0x114], eax
mov dword [esp + 0x158], ebx
mov dword [esp + 0x148], esi
xor ebx, ebx
movsx eax, word [ebp + 0x5c]
mov esi, dword [ebp + eax*4 + 0x60]
movzx edi, word [esi + 0x10]
lea edx, [edi - 1]
cmp dword [esp + 0x148], 0
je 0x4bde4d
movzx ecx, dx
jmp 0x4bde5b
mov ecx, edx
shr ecx, 0x1f
lea edi, [ecx + edi - 1]
shr edi, 1
movzx ecx, di
mov word [ebp + eax*2 + 0xb0], cx
mov ecx, ebx
mov dword [esp + 0x164], edx
mov dword [esp + 0x160], ecx
jmp 0x4bde9b
mov eax, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
lea ebx, [eax + edx]
mov ecx, ebx
shr ecx, 0x1f
add ebx, ecx
shr ebx, 1
movsx edi, word [ebp + 0x5c]
mov word [ebp + edi*2 + 0xb0], bx
movsx edx, word [ebp + 0x5c]
movzx ecx, word [ebp + edx*2 + 0xb0]
mov dword [esp + 0x168], ecx
xor ebx, ebx
mov word [ebp + 0x3e], bx
mov edx, dword [esi + 0x40]
movzx eax, word [esi + 0xc]
movzx ebx, byte [esi + 6]
mov dword [esp + 0x16c], ebx
lea edi, [edx + ecx*2]
add edx, ebx
movzx ebx, word [esi + 0x12]
movzx ecx, byte [eax + edi]
shl ecx, 8
movzx eax, byte [eax + edi + 1]
or ecx, eax
and ebx, ecx
lea ecx, [edx + ebx]
movzx edi, byte [esi + 2]
test edi, edi
je 0x4bdfb5
movzx edi, byte [esi + 4]
test edi, edi
je 0x4bdf50
movzx edi, byte [ecx]
cmp edi, 0x80
jge 0x4bdf08
mov eax, 1
jmp 0x4bdf4e
lea eax, [edx + ebx + 1]
movzx edx, byte [eax]
test edx, 0x80
je 0x4bdf46
lea edx, [eax + 1]
movzx ebx, byte [edx]
test ebx, 0x80
je 0x4bdf3f
dec eax
lea edx, [esp + 0x4c]
mov dword [esp + 0x84], ecx
call fcn.004bf330
mov ecx, dword [esp + 0x84]
jmp 0x4bdf4b
mov eax, 3
jmp 0x4bdf4b
mov eax, 2
movzx eax, al
add ecx, eax
mov eax, ecx
lea edx, [esp + 0x124]
call fcn.004bf330
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
mov ebx, eax
sub ebx, dword [esp + 0x18c]
mov ecx, edx
sub ecx, dword [esp + 0x190]
or ebx, ecx
jne 0x4bdf86
xor ebx, ebx
jmp 0x4bdfa6
mov ecx, eax
sub ecx, dword [esp + 0x18c]
mov ebx, edx
sbb ebx, dword [esp + 0x190]
jge 0x4bdfa1
mov ebx, 0xffffffff
jmp 0x4bdfa6
mov ebx, 1
mov byte [ebp + 0x42], 1
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], edx
jmp 0x4be9ef
movzx edi, byte [ecx]
mov dword [esp + 0x15c], edi
test edi, 0x80
jne 0x4be246
movzx edi, word [esi + 8]
cmp edi, dword [esp + 0x15c]
jl 0x4be246
lea edi, [edx + ebx + 1]
mov dword [esp + 0xf0], edi
mov edx, dword [esp + 0x158]
mov ecx, dword [edx]
mov dword [esp + 0xdc], ecx
movzx eax, byte [ecx + 4]
mov byte [esp + 0x43], al
mov ebx, dword [ecx]
mov dword [esp + 0x34], ebx
movzx edx, byte [edi]
cmp edx, 0x80
jge 0x4be01e
mov dword [esp + 0xd0], edx
mov edi, 1
jmp 0x4be036
mov eax, edi
lea edx, [esp + 0xd0]
call fcn.00497b90
movzx edi, al
mov edx, dword [esp + 0xd0]
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 6]
test al, 4
je 0x4be054
dec edx
mov dword [esp + 0xd0], edx
mov ecx, dword [esp + 0xdc]
movzx ecx, word [ecx + 6]
mov dword [esp + 0xe0], ecx
xor ebx, ebx
cmp edi, edx
jae 0x4be21e
xor eax, eax
mov dword [esp + 0xd4], edx
mov dword [esp + 0x11c], esi
mov dword [esp + 0x120], ebp
mov esi, ebx
mov ebx, eax
mov ebp, dword [esp + 0xd8]
mov edx, dword [esp + 0x158]
movzx ecx, word [edx + 4]
cmp ebx, ecx
jge 0x4bea5b
mov edx, dword [esp + 0xf0]
movzx edx, byte [edx + edi]
cmp edx, 0x80
jge 0x4be0c2
mov ecx, 1
jmp 0x4be176
mov ecx, dword [esp + 0xf0]
movzx edx, byte [edi + ecx]
lea ecx, [ecx + edi + 1]
mov dword [esp + 0x90], ecx
movzx ecx, byte [ecx]
mov dword [esp + 0x88], ecx
test ecx, 0x80
je 0x4be156
mov ecx, dword [esp + 0x90]
shl edx, 0xe
movzx ecx, byte [ecx + 1]
or edx, ecx
test edx, 0x80
je 0x4be134
mov eax, dword [esp + 0x90]
dec eax
lea edx, [esp + 0x14]
mov dword [esp + 0x118], esi
call fcn.004bf330
mov dword [esp + 0x8c], eax
mov edx, dword [esp + 0x14]
xor ecx, ecx
or ecx, dword [esp + 0x18]
je 0x4be16e
mov edx, 0xffffffff
jmp 0x4be16e
and edx, 0x1fc07f
mov ecx, dword [esp + 0x88]
and ecx, 0x7f
shl ecx, 7
or edx, ecx
mov dword [esp + 0x8c], 3
jmp 0x4be16e
and edx, 0x7f
shl edx, 7
or edx, dword [esp + 0x88]
mov dword [esp + 0x8c], 2
movzx ecx, byte [esp + 0x8c]
add edi, ecx
cmp ebp, dword [esp + 0x15c]
jl 0x4be19c
cmp edx, 0xc
jae 0x4be18f
movzx ecx, byte [edx + 0x78d128]
jmp 0x4be194
lea ecx, [edx - 0xc]
shr ecx, 1
test ecx, ecx
ja 0x4bea5b
mov esi, dword [esp + 0xf0]
lea eax, [esi + ebp]
lea ecx, [esp + 0x24]
call fcn.004bee20
add ebp, eax
cmp ebx, dword [esp + 0xe0]
jge 0x4be1c7
mov edx, dword [esp + 0xdc]
mov ecx, dword [edx + ebx*4 + 0xc]
jmp 0x4be1c9
xor ecx, ecx
lea edx, [ebx + ebx*4]
mov esi, dword [esp + 0x158]
mov esi, dword [esi + 0x10]
lea edx, [esi + edx*8]
lea eax, [esp + 0x24]
call fcn.004bf030
mov esi, eax
test esi, esi
jne 0x4bea82
inc ebx
mov edx, dword [esp + 0xd0]
mov dword [esp + 0xd4], edx
cmp edi, edx
jb 0x4be092
mov ebx, esi
mov esi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x120]
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 6]
test al, 8
je 0x4be22c
mov ebx, 0xffffffff
jmp 0x4be9ef
test al, 0x10
jne 0x4be9ef
cmp edi, edx
jae 0x4be9ef
mov ebx, 1
jmp 0x4be9ef
movzx edi, byte [ecx + 1]
mov dword [esp + 0x154], edi
test edi, 0x80
jne 0x4be4ed
mov eax, dword [esp + 0x15c]
and eax, 0x7f
shl eax, 7
add edi, eax
mov dword [esp + 0x154], edi
movzx eax, word [esi + 8]
cmp edi, eax
jg 0x4be4ed
lea edi, [edx + ebx + 2]
mov dword [esp + 0x110], edi
mov edx, dword [esp + 0x158]
mov ecx, dword [edx]
mov dword [esp + 0x104], ecx
movzx eax, byte [ecx + 4]
mov byte [esp + 0x7b], al
mov ebx, dword [ecx]
mov dword [esp + 0x6c], ebx
movzx edx, byte [edi]
cmp edx, 0x80
jge 0x4be2c1
mov dword [esp + 0xf8], edx
mov edi, 1
jmp 0x4be2d9
mov eax, edi
lea edx, [esp + 0xf8]
call fcn.00497b90
movzx edi, al
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x100], edx
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 6]
test al, 4
je 0x4be2f7
dec edx
mov dword [esp + 0xf8], edx
mov ecx, dword [esp + 0x104]
movzx ecx, word [ecx + 6]
mov dword [esp + 0x10c], ecx
xor ebx, ebx
cmp edi, edx
jae 0x4be4c5
xor eax, eax
mov dword [esp + 0xfc], edx
mov dword [esp + 0x11c], esi
mov dword [esp + 0x120], ebp
mov esi, edi
mov edi, ebx
mov ebx, eax
mov ebp, dword [esp + 0x100]
mov edx, dword [esp + 0x158]
movzx ecx, word [edx + 4]
cmp ebx, ecx
jge 0x4beb02
mov edx, dword [esp + 0x110]
movzx edx, byte [edx + esi]
cmp edx, 0x80
jge 0x4be367
mov ecx, 1
jmp 0x4be41b
mov ecx, dword [esp + 0x110]
movzx edx, byte [esi + ecx]
lea ecx, [ecx + esi + 1]
mov dword [esp + 0xc8], ecx
movzx ecx, byte [ecx]
mov dword [esp + 0xc0], ecx
test ecx, 0x80
je 0x4be3fb
mov ecx, dword [esp + 0xc8]
shl edx, 0xe
movzx ecx, byte [ecx + 1]
or edx, ecx
test edx, 0x80
je 0x4be3d9
mov eax, dword [esp + 0xc8]
dec eax
lea edx, [esp + 0x1c]
mov dword [esp + 0x118], edi
call fcn.004bf330
mov dword [esp + 0xc4], eax
mov edx, dword [esp + 0x1c]
xor ecx, ecx
or ecx, dword [esp + 0x20]
je 0x4be413
mov edx, 0xffffffff
jmp 0x4be413
and edx, 0x1fc07f
mov ecx, dword [esp + 0xc0]
and ecx, 0x7f
shl ecx, 7
or edx, ecx
mov dword [esp + 0xc4], 3
jmp 0x4be413
and edx, 0x7f
shl edx, 7
or edx, dword [esp + 0xc0]
mov dword [esp + 0xc4], 2
movzx ecx, byte [esp + 0xc4]
add esi, ecx
cmp ebp, dword [esp + 0x154]
jl 0x4be441
cmp edx, 0xc
jae 0x4be434
movzx ecx, byte [edx + 0x78d128]
jmp 0x4be439
lea ecx, [edx - 0xc]
shr ecx, 1
test ecx, ecx
ja 0x4beb02
mov ecx, dword [esp + 0x110]
lea eax, [ecx + ebp]
lea ecx, [esp + 0x5c]
call fcn.004bee20
add ebp, eax
cmp ebx, dword [esp + 0x10c]
jge 0x4be46c
mov edx, dword [esp + 0x104]
mov ecx, dword [edx + ebx*4 + 0xc]
jmp 0x4be46e
xor ecx, ecx
lea eax, [ebx + ebx*4]
mov edx, dword [esp + 0x158]
mov edx, dword [edx + 0x10]
lea edx, [edx + eax*8]
lea eax, [esp + 0x5c]
call fcn.004bf030
mov edi, eax
test edi, edi
jne 0x4beb2b
inc ebx
mov edx, dword [esp + 0xf8]
mov dword [esp + 0xfc], edx
cmp esi, edx
jb 0x4be337
mov ebx, edi
mov edi, esi
mov esi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x120]
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 6]
test al, 8
je 0x4be4d3
mov ebx, 0xffffffff
jmp 0x4be9ef
test al, 0x10
jne 0x4be9ef
cmp edi, edx
jae 0x4be9ef
mov ebx, 1
jmp 0x4be9ef
sub ecx, dword [esp + 0x16c]
mov dword [ebp + 0x20], ecx
movzx ebx, byte [esi + 6]
movzx edx, byte [esi + 2]
test edx, edx
je 0x4be578
movzx edx, byte [esi + 4]
test edx, edx
je 0x4be54f
lea eax, [ecx + ebx]
movzx edi, byte [eax]
cmp edi, 0x80
jge 0x4be527
mov dword [esp + 0xf4], edi
mov eax, 1
jmp 0x4be54b
lea edx, [esp + 0xf4]
mov dword [esp + 0x84], ecx
call fcn.00497b90
mov ecx, dword [esp + 0x84]
movzx eax, al
mov edi, dword [esp + 0xf4]
add ebx, eax
jmp 0x4be55e
mov dword [esp + 0xf4], 0
xor eax, eax
xor edi, edi
add ecx, ebx
mov eax, ecx
mov edx, dword [esp + 0x114]
call fcn.004bf330
movzx ecx, al
add ecx, ebx
mov dword [ebp + 0x30], edi
jmp 0x4be5be
mov dword [ebp + 0x30], 0
add ecx, ebx
movzx edi, byte [ecx]
cmp edi, 0x80
jge 0x4be59a
mov dword [esp + 0xf4], edi
mov ecx, 1
jmp 0x4be5b2
mov eax, ecx
lea edx, [esp + 0xf4]
call fcn.00497b90
movzx ecx, al
mov edi, dword [esp + 0xf4]
add ecx, ebx
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x2c], 0
mov dword [ebp + 0x34], edi
mov word [ebp + 0x38], cx
movzx edx, word [esi + 8]
mov dword [esp + 0x140], edx
cmp edi, edx
ja 0x4be5f6
movzx edx, cx
add edx, edi
mov word [ebp + 0x3a], di
xor eax, eax
mov word [ebp + 0x3c], ax
test edx, 0xfffffffc
jne 0x4be5f0
mov edx, 4
mov word [ebp + 0x3e], dx
jmp 0x4be63b
movzx ebx, word [esi + 0xa]
sub edi, ebx
mov edx, dword [esi + 0x3c]
movzx edx, word [edx + 0x16]
add edx, 0xfffffffc
mov dword [esp + 0x108], edx
mov eax, edi
xor edx, edx
mov edi, dword [esp + 0x108]
div edi
add edx, ebx
cmp edx, dword [esp + 0x140]
jg 0x4be628
movzx ebx, dx
mov word [ebp + 0x3a], bx
lea eax, [ecx + ebx]
mov word [ebp + 0x3c], ax
lea edx, [ecx + ebx + 4]
mov word [ebp + 0x3e], dx
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x14c], eax
test eax, eax
jle 0x4bea36
cmp dword [esp + 0x14c], 0x7fffff00
jge 0x4bea36
cmp dword [0x830380], 0
je 0x4be6ac
mov eax, dword [0x84f788]
test eax, eax
je 0x4be678
push eax
call dword [0x8303c8]
pop ecx
mov eax, dword [esp + 0x14c]
lea edx, [esp + 0xcc]
call fcn.0041ec40
mov eax, dword [0x84f788]
test eax, eax
je 0x4be69c
push eax
call dword [0x8303d0]
pop ecx
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x150], eax
jmp 0x4be6c8
push dword [esp + 0x14c]
call dword [0x830398]
pop ecx
mov dword [esp + 0x150], eax
mov dword [esp + 0xcc], eax
cmp dword [esp + 0x150], 0
je 0x4bea36
mov ebx, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0
mov eax, ebp
xor edx, edx
mov ecx, dword [esp + 0x14c]
call fcn.004bf500
mov edi, eax
test edi, edi
jne 0x4bedcb
mov edi, dword [esp + 0x158]
mov edx, dword [edi]
mov dword [esp + 0x138], edx
movzx eax, byte [edx + 4]
mov byte [esp + 0xb7], al
mov ecx, dword [edx]
mov dword [esp + 0xa8], ecx
movzx edx, byte [ebx]
cmp edx, 0x80
jge 0x4be741
mov dword [esp + 0x12c], edx
mov dword [esp + 0x13c], 1
jmp 0x4be760
mov eax, ebx
lea edx, [esp + 0x12c]
call fcn.00497b90
movzx eax, al
mov dword [esp + 0x13c], eax
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x134], edx
mov eax, edi
movzx eax, word [eax + 6]
test al, 4
je 0x4be779
dec edx
mov dword [esp + 0x12c], edx
mov ecx, dword [esp + 0x138]
movzx edi, word [ecx + 6]
mov dword [esp + 0x144], edi
xor ebx, ebx
cmp edx, dword [esp + 0x13c]
jbe 0x4be95c
xor eax, eax
mov dword [esp + 0x130], edx
mov dword [esp + 0x11c], esi
mov dword [esp + 0x120], ebp
mov edi, ebx
mov ebx, eax
mov ebp, dword [esp + 0x134]
mov esi, dword [esp + 0x13c]
mov edx, dword [esp + 0x158]
movzx ecx, word [edx + 4]
cmp ebx, ecx
jge 0x4bebab
mov edx, dword [esp + 0x150]
movzx edx, byte [edx + esi]
cmp edx, 0x80
jge 0x4be7f3
mov ecx, 1
jmp 0x4be8a7
mov ecx, dword [esp + 0x150]
movzx edx, byte [esi + ecx]
lea ecx, [ecx + esi + 1]
mov dword [esp + 0xec], ecx
movzx ecx, byte [ecx]
mov dword [esp + 0xe4], ecx
test ecx, 0x80
je 0x4be887
mov ecx, dword [esp + 0xec]
shl edx, 0xe
movzx ecx, byte [ecx + 1]
or edx, ecx
test edx, 0x80
je 0x4be865
mov eax, dword [esp + 0xec]
dec eax
lea edx, [esp + 0x54]
mov dword [esp + 0x118], edi
call fcn.004bf330
mov dword [esp + 0xe8], eax
mov edx, dword [esp + 0x54]
xor ecx, ecx
or ecx, dword [esp + 0x58]
je 0x4be89f
mov edx, 0xffffffff
jmp 0x4be89f
and edx, 0x1fc07f
mov ecx, dword [esp + 0xe4]
and ecx, 0x7f
shl ecx, 7
or edx, ecx
mov dword [esp + 0xe8], 3
jmp 0x4be89f
and edx, 0x7f
shl edx, 7
or edx, dword [esp + 0xe4]
mov dword [esp + 0xe8], 2
movzx ecx, byte [esp + 0xe8]
add esi, ecx
cmp ebp, dword [esp + 0x14c]
jl 0x4be8cd
cmp edx, 0xc
jae 0x4be8c0
movzx ecx, byte [edx + 0x78d128]
jmp 0x4be8c5
lea ecx, [edx - 0xc]
shr ecx, 1
test ecx, ecx
ja 0x4bebab
mov edi, dword [esp + 0x150]
lea eax, [edi + ebp]
lea ecx, [esp + 0x98]
call fcn.004bee20
add ebp, eax
cmp ebx, dword [esp + 0x144]
jge 0x4be8fb
mov edx, dword [esp + 0x138]
mov ecx, dword [edx + ebx*4 + 0xc]
jmp 0x4be8fd
xor ecx, ecx
lea edx, [ebx + ebx*4]
mov edi, dword [esp + 0x158]
mov edi, dword [edi + 0x10]
lea edx, [edi + edx*8]
lea eax, [esp + 0x98]
call fcn.004bf030
mov edi, eax
test edi, edi
jne 0x4bed2c
inc ebx
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x130], edx
cmp esi, edx
jb 0x4be7c3
mov dword [esp + 0x13c], esi
mov ebx, edi
mov esi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x120]
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 6]
test al, 8
je 0x4be967
mov ebx, 0xffffffff
jmp 0x4be979
test al, 0x10
jne 0x4be979
cmp edx, dword [esp + 0x13c]
jbe 0x4be979
mov ebx, 1
cmp dword [0x830380], 0
je 0x4be9e1
mov eax, dword [0x84f788]
test eax, eax
je 0x4be993
push eax
call dword [0x8303c8]
pop ecx
push dword [esp + 0x150]
call dword [0x8303a4]
mov edx, dword [0x84f3a0]
sub edx, eax
mov dword [0x84f3a0], edx
mov eax, dword [0x84f3c4]
cmp edx, eax
jge 0x4be9b9
mov edx, eax
mov dword [0x84f3c4], edx
push dword [esp + 0x154]
call dword [0x83039c]
add esp, 8
mov eax, dword [0x84f788]
test eax, eax
je 0x4be9ef
push eax
call dword [0x8303d0]
jmp 0x4be9ee
push dword [esp + 0x150]
call dword [0x83039c]
pop ecx
test ebx, ebx
je 0x4bebd9
jl 0x4bea0c
mov eax, dword [esp + 0x168]
lea edx, [eax - 1]
mov dword [esp + 0x164], edx
jmp 0x4bea1d
mov eax, dword [esp + 0x168]
lea edx, [eax + 1]
mov dword [esp + 0x160], edx
mov eax, dword [esp + 0x164]
cmp eax, dword [esp + 0x160]
jge 0x4bde75
jmp 0x4bedb2
mov edi, 7
mov eax, edi
add esp, 0x170
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x170
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [ebp + 0x50]
jmp 0x4bddeb
mov ebx, esi
mov edx, dword [esp + 0xd4]
mov esi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x120]
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 6]
jmp 0x4be21e
mov eax, ebx
mov ebx, esi
mov esi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x120]
mov edx, dword [esp + 0xdc]
mov edx, dword [edx + 8]
test edx, edx
je 0x4beab9
cmp eax, dword [esp + 0xe0]
jge 0x4beab9
mov ecx, ebx
neg ecx
movzx edx, byte [edx + eax]
test edx, edx
je 0x4beab9
mov ebx, ecx
mov edx, dword [esp + 0x158]
movzx edx, word [edx + 6]
test dl, 0x20
je 0x4be9ef
mov ecx, dword [esp + 0x158]
movzx ecx, word [ecx + 4]
dec ecx
cmp eax, ecx
jne 0x4be9ef
and edx, 0xffffffdf
mov ecx, dword [esp + 0x158]
mov word [ecx + 6], dx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jmp 0x4be9ef
mov ebx, edi
mov edi, esi
mov edx, dword [esp + 0xfc]
mov esi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x120]
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 6]
jmp 0x4be4c5
mov eax, ebx
mov ebx, edi
mov esi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x120]
mov edx, dword [esp + 0x104]
mov edx, dword [edx + 8]
test edx, edx
je 0x4beb62
cmp eax, dword [esp + 0x10c]
jge 0x4beb62
mov ecx, ebx
neg ecx
movzx edx, byte [edx + eax]
test edx, edx
je 0x4beb62
mov ebx, ecx
mov edx, dword [esp + 0x158]
movzx edx, word [edx + 6]
test dl, 0x20
je 0x4be9ef
mov ecx, dword [esp + 0x158]
movzx ecx, word [ecx + 4]
dec ecx
cmp eax, ecx
jne 0x4be9ef
and edx, 0xffffffdf
mov ecx, dword [esp + 0x158]
mov word [ecx + 6], dx
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jmp 0x4be9ef
mov dword [esp + 0x13c], esi
mov ebx, edi
mov edx, dword [esp + 0x130]
mov esi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x120]
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 6]
jmp 0x4be95c
mov dword [esp + 0x118], ebx
mov ecx, dword [esp + 0x168]
xor ebx, ebx
movzx eax, byte [esi + 2]
test eax, eax
je 0x4bed15
movzx eax, byte [esi + 3]
test eax, eax
jne 0x4bed15
test eax, eax
je 0x4bec1f
mov eax, dword [esp + 0x118]
mov ebp, dword [esp + 0x198]
mov dword [ebp], eax
xor eax, eax
xor edi, edi
jmp 0x4bea3b
mov edi, dword [esi + 0x40]
movzx eax, word [esi + 0x10]
cmp ecx, eax
jl 0x4bec55
movzx eax, byte [esi + 5]
movzx edx, byte [eax + edi + 8]
shl edx, 0x18
movzx esi, byte [eax + edi + 9]
shl esi, 0x10
or edx, esi
movzx esi, byte [eax + edi + 0xa]
shl esi, 8
or edx, esi
movzx edi, byte [eax + edi + 0xb]
or edx, edi
je 0x4bec05
jmp 0x4bec98
movzx eax, word [esi + 0x12]
movzx esi, word [esi + 0xc]
lea esi, [esi + ecx*2]
movzx edx, byte [edi + esi]
shl edx, 8
movzx esi, byte [edi + esi + 1]
or edx, esi
and eax, edx
movzx edx, byte [eax + edi]
shl edx, 0x18
movzx esi, byte [eax + edi + 1]
shl esi, 0x10
or edx, esi
movzx esi, byte [eax + edi + 2]
shl esi, 8
or edx, esi
movzx edi, byte [eax + edi + 3]
or edx, edi
je 0x4bec05
movsx eax, word [ebp + 0x5c]
mov word [ebp + eax*2 + 0xb0], cx
mov word [ebp + 0x3e], bx
mov byte [ebp + 0x42], bl
movsx esi, word [ebp + 0x5c]
mov eax, dword [ebp + 4]
cmp esi, 0x13
jl 0x4becc9
mov edi, 0xb
test edi, edi
je 0x4bde2f
jmp 0x4bea3b
lea ecx, [esp + 0x94]
call fcn.00586a80
mov edi, eax
test edi, edi
jne 0x4becbc
mov edx, dword [esp + 0x94]
mov dword [ebp + esi*4 + 0x64], edx
mov word [ebp + esi*2 + 0xb2], bx
inc word [ebp + 0x5c]
mov word [ebp + 0x3e], bx
mov byte [ebp + 0x42], bl
movzx eax, word [edx + 0x10]
test eax, eax
jle 0x4becb7
movzx eax, byte [edx + 2]
mov esi, dword [ebp + esi*4 + 0x60]
movzx edx, byte [esi + 2]
cmp eax, edx
jne 0x4becb7
mov edi, ebx
jmp 0x4becbc
mov ebp, dword [esp + 0x198]
mov dword [ebp], 0
xor eax, eax
xor edi, edi
jmp 0x4bea3b
mov eax, ebx
mov ebx, edi
mov esi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x120]
mov edx, dword [esp + 0x138]
mov edx, dword [edx + 8]
test edx, edx
je 0x4bed63
cmp eax, dword [esp + 0x144]
jge 0x4bed63
mov ecx, ebx
neg ecx
movzx edx, byte [edx + eax]
test edx, edx
je 0x4bed63
mov ebx, ecx
mov edx, dword [esp + 0x158]
movzx edx, word [edx + 6]
test dl, 0x20
je 0x4be979
mov ecx, dword [esp + 0x158]
movzx ecx, word [ecx + 4]
dec ecx
cmp eax, ecx
jne 0x4be979
and edx, 0xffffffdf
mov ecx, dword [esp + 0x158]
mov word [ecx + 6], dx
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jmp 0x4be979
mov dword [esp + 0x118], ebx
mov ecx, dword [esp + 0x160]
xor ebx, ebx
movzx eax, byte [esi + 3]
jmp 0x4bec01
mov eax, ebx
call fcn.004c69c4
jmp 0x4bea3b
lea ecx, [ebp + 0x60]
mov eax, edi
mov edx, dword [ebp + 0x14]
call fcn.00586a80
test eax, eax
jne 0x4bee16
xor ecx, ecx
mov word [ebp + 0x5c], cx
mov ecx, dword [ebp + 0x60]
xor edx, edx
cmp dword [ebp + 0x10], 0
sete dl
movzx edi, byte [ecx + 2]
cmp edx, edi
je 0x4bdd6f
mov eax, 0xb
add esp, 0x170
pop ebx
pop ebp
pop esi
pop edi
ret
mov byte [ebp + 0x43], 0
jmp 0x4bddeb