Function at 0x506d70
Capabilities:
Encrypt data using rc4 ksa
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x21c
mov dword [ebp - 0x1b0], edx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x1ac]
mov ebx, dword [ebp - 0x1b0]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1b4], edx
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [ecx + 0x20]
add ebx, 1
mov dword [ebp - 0x1b8], eax
mov edx, dword [edx + 0x8d8]
mov dword [ebp - 0x1d4], ecx
mov edi, ecx
mov dword [ebp - 0x1e8], ebx
mov dword [ebp - 0x18c], edx
lea esi, [esi]
mov ecx, dword [edi + 0x24]
mov eax, dword [edi + 0x30]
mov edx, dword [edi + 0x34]
mov ebx, dword [edi + 0x28]
mov dword [ebp - 0x188], ecx
mov esi, dword [ebp - 0x1b4]
add dword [ebp - 0x188], eax
mov dword [ebp - 0x184], 0
adc dword [ebp - 0x184], edx
xor edx, edx
sub dword [ebp - 0x188], ebx
sbb dword [ebp - 0x184], edx
cmp dword [ebp - 0x184], esi
jle 0x506e20
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
jl 0x506e30
mov edi, dword [ebp - 0x1b8]
cmp dword [ebp - 0x188], edi
jae 0x506e14
cmp ecx, ebx
jae 0x507169
mov eax, dword [ebp - 0x1d4]
movzx edi, byte [ecx + eax + 0x64]
add ecx, 1
mov dword [eax + 0x24], ecx
shl edi, 8
cmp ecx, dword [eax + 0x28]
jae 0x507144
mov edx, eax
movzx eax, byte [ecx + eax + 0x64]
add ecx, 1
mov dword [edx + 0x24], ecx
mov esi, eax
mov eax, edx
cmp ecx, dword [eax + 0x28]
jae 0x507121
mov edx, eax
movzx eax, byte [ecx + eax + 0x64]
add ecx, 1
mov dword [edx + 0x24], ecx
mov ebx, eax
mov eax, edx
cmp ecx, dword [eax + 0x28]
jae 0x5070ed
mov edx, eax
movzx eax, byte [ecx + eax + 0x64]
add ecx, 1
mov dword [edx + 0x24], ecx
mov edx, eax
or esi, edi
shl esi, 8
or ebx, esi
shl ebx, 8
or edx, ebx
mov eax, edx
xor edx, edx
cmp eax, 7
jbe 0x506e14
mov esi, dword [ebp - 0x1ac]
add eax, 0xfffffff8
mov dword [ebp - 0x98], eax
adc edx, 0xffffffff
mov dword [ebp - 0x94], edx
mov ebx, dword [esi + 0x20]
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebx + 0x28]
jae 0x5071fa
movzx edi, byte [ebx + eax + 0x64]
lea ecx, [eax + 1]
mov dword [ebx + 0x24], ecx
shl edi, 8
mov dword [ebp - 0xe8], edi
cmp ecx, dword [ebx + 0x28]
jae 0x5071bc
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
cmp ecx, dword [ebx + 0x28]
mov dword [ebx + 0x24], ecx
mov edi, eax
jae 0x5071dd
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov esi, eax
cmp ecx, dword [ebx + 0x28]
jae 0x507194
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edx, eax
or edi, dword [ebp - 0xe8]
lea ebx, [ebp - 0x14]
shl edi, 8
or esi, edi
shl esi, 8
or edx, esi
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x1a8], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb178d5
mov dword [esp + 4], 7
mov dword [esp], 7
call fcn.00405fb0
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x507081
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
mov dword [esp + 0x10], esi
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov ebx, dword [ebp - 0x188]
mov esi, dword [ebp - 0x184]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1ac]
call fcn.0050b7d0
test eax, eax
js 0x506e14
mov ecx, dword [ebp - 0x188]
mov ebx, dword [ebp - 0x184]
add ecx, 8
adc ebx, 0
add ecx, dword [ebp - 0x98]
adc ebx, dword [ebp - 0x94]
cmp dword [ebp - 0x1b4], ebx
jl 0x506e14
jg 0x507001
cmp dword [ebp - 0x1b8], ecx
jbe 0x506e14
mov edi, dword [ebp - 0x1ac]
mov edi, dword [edi + 0x20]
mov dword [ebp - 0x1d4], edi
mov esi, dword [edi + 0x30]
mov edi, dword [edi + 0x34]
cmp ebx, edi
jle 0x507050
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov ebx, dword [ebp - 0x1d4]
mov dword [esp], ebx
call fcn.005284e0
test eax, eax
je 0x506e14
mov esi, dword [ebp - 0x1ac]
mov esi, dword [esi + 0x20]
mov edi, esi
mov dword [ebp - 0x1d4], esi
jmp 0x506dd0
jl 0x507056
cmp ecx, esi
jae 0x50701a
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x28]
xor edx, edx
sub esi, eax
mov eax, ecx
sbb edi, edx
sub eax, esi
mov edx, ebx
sbb edx, edi
test edx, edx
js 0x50701a
mov ecx, dword [ebp - 0x1d4]
mov edi, ecx
mov dword [ecx + 0x24], eax
jmp 0x506dd0
mov eax, dword [ebp - 0x14]
cmp eax, 0x6d6f6f76
je 0x507e11
ja 0x5072a0
cmp eax, 0x636d7664
je 0x507ef6
cmp eax, 0x64636f6d
je 0x507e4e
cmp eax, 0x636d6f76
je 0x507e11
mov ebx, dword [ebp - 0x1a8]
lea esi, [ebp - 0x14]
bswap eax
mov dword [ebp - 0x14], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 8], 0xb17840
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
jmp 0x506fc9
mov dword [esp], eax
call fcn.005280b0
mov edx, 0xffffff00
test eax, eax
je 0x506e98
mov edx, dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x24]
movzx edx, byte [eax + edx + 0x64]
add eax, 1
mov dword [ecx + 0x24], eax
jmp 0x506e98
mov dword [esp], eax
call fcn.005280b0
test eax, eax
jne 0x507218
mov eax, dword [ebp - 0x1d4]
mov ebx, 0xffffff00
mov ecx, dword [eax + 0x24]
jmp 0x506e80
mov dword [esp], eax
call fcn.005280b0
test eax, eax
jne 0x507253
mov ebx, dword [ebp - 0x1d4]
mov esi, 0xffffff00
mov ecx, dword [ebx + 0x24]
mov eax, ebx
jmp 0x506e66
mov edx, dword [ebp - 0x1d4]
mov dword [esp], edx
call fcn.005280b0
test eax, eax
jne 0x507235
mov ebx, dword [ebp - 0x1d4]
mov edi, 0xffff0000
mov ecx, dword [ebx + 0x24]
mov eax, ebx
jmp 0x506e4c
mov dword [esp], ebx
call fcn.005280b0
mov edx, 0xffffff00
test eax, eax
je 0x506f2e
mov eax, dword [ebx + 0x24]
movzx edx, byte [eax + ebx + 0x64]
add eax, 1
mov dword [ebx + 0x24], eax
jmp 0x506f2e
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x507298
mov ecx, dword [ebx + 0x24]
mov edi, 0xffffff00
cmp ecx, dword [ebx + 0x28]
jb 0x506f0b
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x507290
mov ecx, dword [ebx + 0x24]
mov esi, 0xffffff00
jmp 0x506f18
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x507274
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0xe8], 0xffff0000
jmp 0x506eec
mov edx, dword [ebp - 0x1d4]
mov ecx, dword [edx + 0x24]
movzx eax, byte [ecx + edx + 0x64]
add ecx, 1
mov dword [edx + 0x24], ecx
mov ebx, eax
mov eax, edx
jmp 0x506e80
mov esi, dword [ebp - 0x1d4]
mov ecx, dword [esi + 0x24]
mov eax, esi
movzx edi, byte [ecx + esi + 0x64]
add ecx, 1
mov dword [esi + 0x24], ecx
shl edi, 8
jmp 0x506e4c
mov esi, dword [ebp - 0x1d4]
mov ecx, dword [esi + 0x24]
movzx eax, byte [ecx + esi + 0x64]
add ecx, 1
mov dword [esi + 0x24], ecx
mov esi, eax
mov eax, dword [ebp - 0x1d4]
jmp 0x506e66
mov ecx, dword [ebx + 0x24]
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
shl eax, 8
mov dword [ebp - 0xe8], eax
jmp 0x506eec
mov ecx, dword [ebx + 0x24]
jmp 0x506f0b
mov ecx, dword [ebx + 0x24]
jmp 0x506ef5
cmp eax, 0x7472616b
je 0x507cdb
cmp eax, 0x75647461
je 0x5074d0
cmp eax, 0x6d766864
nop
lea esi, [esi]
jne 0x5070b6
mov esi, dword [ebp - 0x1ac]
mov esi, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
cmp eax, dword [esi + 0x28]
mov dword [ebp - 0x1d4], esi
jae 0x5083cb
movzx edi, byte [eax + esi + 0x64]
add eax, 1
mov dword [esi + 0x24], eax
mov dword [ebp - 0x180], edi
xor esi, esi
mov ebx, 0x13
cmp dword [ebp - 0x180], 1
je 0x507309
mov ebx, 0xb
xor esi, esi
mov edi, dword [ebp - 0x1d4]
mov edi, dword [edi + 0x28]
mov dword [ebp - 0x1f4], edi
mov edx, dword [ebp - 0x1d4]
mov eax, dword [ebp - 0x1f4]
sub eax, dword [edx + 0x24]
je 0x50807f
mov ecx, eax
mov edx, ecx
mov eax, ecx
sar edx, 0x1f
cmp edx, esi
jl 0x507349
jg 0x507340
cmp ecx, ebx
jbe 0x507349
mov edx, ebx
mov ecx, ebx
mov eax, ebx
sar edx, 0x1f
mov edi, dword [ebp - 0x1d4]
add dword [edi + 0x24], ecx
sub ebx, eax
sbb esi, edx
cmp esi, 0
jg 0x507318
jl 0x507362
cmp ebx, 0
ja 0x507318
mov eax, dword [ebp - 0x1ac]
mov ebx, dword [eax + 0x20]
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebx + 0x28]
jae 0x50878c
movzx edx, byte [ebx + eax + 0x64]
lea ecx, [eax + 1]
mov dword [ebx + 0x24], ecx
shl edx, 8
mov dword [ebp - 0xe0], edx
cmp ecx, dword [ebx + 0x28]
jae 0x50876f
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edi, eax
cmp ecx, dword [ebx + 0x28]
jae 0x508752
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov esi, eax
cmp ecx, dword [ebx + 0x28]
jae 0x50872a
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edx, eax
or edi, dword [ebp - 0xe0]
shl edi, 8
or esi, edi
mov edi, dword [ebp - 0x18c]
shl esi, 8
or edx, esi
cmp dword [ebp - 0x180], 1
mov dword [edi + 0x424], edx
je 0x5088ea
mov esi, dword [ebp - 0x1ac]
mov ebx, dword [esi + 0x20]
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebx + 0x28]
jae 0x508c53
movzx edi, byte [ebx + eax + 0x64]
lea ecx, [eax + 1]
mov dword [ebx + 0x24], ecx
shl edi, 8
mov dword [ebp - 0xe4], edi
cmp ecx, dword [ebx + 0x28]
jae 0x508c36
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edi, eax
cmp ecx, dword [ebx + 0x28]
jae 0x508c19
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov esi, eax
cmp ecx, dword [ebx + 0x28]
jae 0x508bf1
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edx, eax
or edi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x18c]
shl edi, 8
or esi, edi
shl esi, 8
mov ebx, ecx
or edx, esi
mov dword [ecx + 0x428], edx
mov eax, dword [ebx + 0x428]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x424]
mov dword [esp + 0x18], eax
mov esi, dword [ebp - 0x1a8]
mov dword [esp + 0x10], 0xb178e8
mov dword [esp + 0x14], esi
mov edi, dword [ebp - 0x1b0]
mov dword [esp + 8], 0xb178ec
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], edi
call fcn.00405fb0
jmp 0x506fc9
mov dword [esp + 8], 0xb18434
mov dword [esp + 4], 7
mov dword [esp], 7
call fcn.00405fb0
mov dword [esp + 8], 0xb18451
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
cmp dword [ebp - 0x94], 0
mov byte [ebp - 0x10d], 1
jle 0x508620
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
cmp byte [ebp - 0x10d], 0
je 0x506fc9
cmp dword [ebp - 0x12c], 0
jle 0x507cc1
mov edx, dword [ebp - 0x1ac]
mov ebx, dword [edx + 0x20]
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebx + 0x28]
jae 0x507969
movzx ecx, byte [ebx + eax + 0x64]
mov dword [ebp - 0xec], ecx
lea ecx, [eax + 1]
shl dword [ebp - 0xec], 8
mov dword [ebx + 0x24], ecx
cmp ecx, dword [ebx + 0x28]
jae 0x50798f
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
cmp ecx, dword [ebx + 0x28]
mov dword [ebx + 0x24], ecx
mov edi, eax
jae 0x5079b0
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
cmp ecx, dword [ebx + 0x28]
mov dword [ebx + 0x24], ecx
mov esi, eax
jae 0x5079d1
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edx, eax
or edi, dword [ebp - 0xec]
mov dword [ebp - 0xf4], 0
shl edi, 8
or esi, edi
mov edi, dword [ebp - 0x1ac]
shl esi, 8
or edx, esi
mov dword [ebp - 0xf8], edx
mov ebx, dword [edi + 0x20]
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebx + 0x28]
jae 0x5079f9
movzx edx, byte [ebx + eax + 0x64]
lea ecx, [eax + 1]
mov dword [ebx + 0x24], ecx
shl edx, 8
mov dword [ebp - 0xf0], edx
cmp ecx, dword [ebx + 0x28]
jae 0x507a1f
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
cmp ecx, dword [ebx + 0x28]
mov dword [ebx + 0x24], ecx
mov edi, eax
jae 0x507a40
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov esi, eax
cmp ecx, dword [ebx + 0x28]
jae 0x507940
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edx, eax
or edi, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0xf4]
shl edi, 8
or esi, edi
shl esi, 8
or edx, esi
add eax, 0xfffffff8
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x100], eax
adc edx, 0xffffffff
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0xf8]
mov dword [esp + 0x14], ecx
lea ecx, [ebp - 0x18]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0xb18467
mov dword [esp + 0x10], edx
mov dword [esp + 4], 7
mov dword [esp], 7
call fcn.00405fb0
mov eax, dword [ebp - 0x18]
cmp eax, 0xa9666d74
je 0x5076f6
ja 0x5078f6
cmp eax, 0xa9636d74
je 0x5076f6
mov esi, esi
lea edi, [edi]
ja 0x507b55
cmp eax, 0xa9415254
nop
lea esi, [esi]
je 0x5076f6
cmp eax, 0xa9617574
je 0x5076f6
cmp eax, 0x6e616d65
nop
jne 0x507ba6
mov esi, dword [ebp - 0x1ac]
mov dword [ebp - 0x194], esp
mov ebx, dword [esi + 0x20]
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebx + 0x28]
jae 0x507b14
movzx esi, byte [eax + ebx + 0x64]
add eax, 1
mov dword [ebx + 0x24], eax
shl esi, 8
cmp eax, dword [ebx + 0x28]
jae 0x507b2c
movzx edx, byte [eax + ebx + 0x64]
add eax, 1
mov dword [ebx + 0x24], eax
or edx, esi
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x124], 0
add eax, 0x21
and eax, 0xfffffff0
call fcn.00aa20e0
mov eax, dword [ebp - 0x1ac]
lea edi, [esp + 0x33]
lea ebx, [edx + 2]
and edi, 0xfffffff0
test ebx, ebx
mov dword [ebp - 0x1d0], edi
mov edi, dword [eax + 0x20]
jle 0x50780e
mov edx, dword [ebp - 0x1d0]
lea ecx, [edi + 0x64]
mov dword [ebp - 0x1dc], ecx
mov dword [ebp - 0x118], edx
jmp 0x5077ca
cmp edx, eax
mov esi, ecx
jb 0x5077f0
cmp esi, ebx
jle 0x50779c
mov esi, ebx
mov eax, dword [ebp - 0x1dc]
sub ebx, esi
add eax, dword [edi + 0x24]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x118]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
add dword [edi + 0x24], esi
test ebx, ebx
jle 0x50780e
add dword [ebp - 0x118], esi
mov edx, dword [edi + 0x28]
mov eax, dword [edi + 0x24]
mov ecx, edx
sub ecx, eax
jne 0x507790
mov dword [esp], edi
call fcn.005280b0
test eax, eax
je 0x50780e
mov edx, dword [edi + 0x28]
mov eax, dword [edi + 0x24]
mov esi, edx
sub esi, eax
cmp edx, eax
jae 0x507796
mov dword [esp + 8], 0xb173d8
mov dword [esp + 4], 2
mov dword [esp], 7
call fcn.00405fb0
jmp 0x507796
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x1d0]
add eax, 2
mov byte [edx + eax], 0
mov eax, dword [ebp - 0x18]
cmp eax, 0xa9666d74
je 0x5087c1
ja 0x507a5d
cmp eax, 0xa9636d74
je 0x5087d4
jbe 0x507fe0
cmp eax, 0xa9646179
nop
lea esi, [esi]
je 0x5086f1
cmp eax, 0xa9646972
nop
lea esi, [esi]
je 0x508696
cmp eax, 0xa9637079
nop
lea esi, [esi]
jne 0x5078b5
mov ebx, dword [ebp - 0x1d0]
mov dword [esp + 4], 0xb18497
add ebx, 2
mov dword [esp + 8], ebx
mov esi, dword [ebp - 0x1ac]
mov dword [esp], esi
call fcn.004c2ff0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb184a1
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov ecx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0xfc]
mov esi, dword [ebp - 0x124]
add ecx, 0xfffffffc
adc ebx, 0xffffffff
mov dword [ebp - 0x12c], ebx
mov ebx, dword [ebp - 0x128]
mov dword [ebp - 0x130], ecx
sub dword [ebp - 0x130], ebx
sbb dword [ebp - 0x12c], esi
mov esp, dword [ebp - 0x194]
jmp 0x507534
cmp eax, 0xa9707266
je 0x5076f6
ja 0x507b77
cmp eax, 0xa96e616d
lea esi, [esi]
je 0x5076f6
cmp eax, 0xa9707264
nop
lea esi, [esi]
je 0x5076f6
cmp eax, 0xa9696e66
nop
lea esi, [esi]
jne 0x507ba6
jmp 0x5076f6
mov dword [esp], ebx
call fcn.005280b0
mov edx, 0xffffff00
test eax, eax
nop
je 0x507648
mov eax, dword [ebx + 0x24]
movzx edx, byte [eax + ebx + 0x64]
add eax, 1
mov dword [ebx + 0x24], eax
jmp 0x507648
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x507af8
mov ecx, dword [ebx + 0x24]
cmp ecx, dword [ebx + 0x28]
mov dword [ebp - 0xec], 0xffff0000
jb 0x507584
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x507af0
mov ecx, dword [ebx + 0x24]
mov edi, 0xffffff00
cmp ecx, dword [ebx + 0x28]
jb 0x50759a
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x507ae8
mov ecx, dword [ebx + 0x24]
mov esi, 0xffffff00
cmp ecx, dword [ebx + 0x28]
jb 0x5075b0
mov dword [esp], ebx
call fcn.005280b0
mov edx, 0xffffff00
test eax, eax
je 0x5075bd
mov eax, dword [ebx + 0x24]
movzx edx, byte [eax + ebx + 0x64]
add eax, 1
mov dword [ebx + 0x24], eax
jmp 0x5075bd
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x507acc
mov ecx, dword [ebx + 0x24]
cmp ecx, dword [ebx + 0x28]
mov dword [ebp - 0xf0], 0xffff0000
jb 0x50760f
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x507ac4
mov ecx, dword [ebx + 0x24]
mov edi, 0xffffff00
cmp ecx, dword [ebx + 0x28]
jb 0x507625
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x507b4a
mov ecx, dword [ebx + 0x24]
mov esi, 0xffffff00
jmp 0x507632
cmp eax, 0xa9707266
je 0x5087ae
jbe 0x507fb0
cmp eax, 0xa9737263
je 0x508704
cmp eax, 0xa9737772
nop
je 0x50863b
cmp eax, 0xa9726571
nop
lea esi, [esi]
jne 0x5078b5
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0xb184ff
mov dword [esp + 4], 6
mov dword [esp], 7
add eax, 2
mov dword [esp + 0xc], eax
call fcn.00405fb0
jmp 0x5078b5
mov ecx, dword [ebx + 0x24]
jmp 0x50760f
mov ecx, dword [ebx + 0x24]
movzx esi, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
shl esi, 8
mov dword [ebp - 0xf0], esi
jmp 0x507606
mov ecx, dword [ebx + 0x24]
jmp 0x50759a
mov ecx, dword [ebx + 0x24]
jmp 0x507584
mov ecx, dword [ebx + 0x24]
movzx esi, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
shl esi, 8
mov dword [ebp - 0xec], esi
jmp 0x50757b
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
je 0x507fa3
mov eax, dword [ebx + 0x24]
jmp 0x507711
mov dword [esp], ebx
nop
call fcn.005280b0
mov edx, 0xffffff00
test eax, eax
je 0x507733
mov eax, dword [ebx + 0x24]
jmp 0x507728
mov ecx, dword [ebx + 0x24]
lea esi, [esi]
jmp 0x507625
cmp eax, 0xa9646179
je 0x5076f6
cmp eax, 0xa9646972
je 0x5076f6
cmp eax, 0xa9637079
jne 0x507ba6
jmp 0x5076f6
cmp eax, 0xa9737263
lea esi, [esi]
je 0x5076f6
cmp eax, 0xa9737772
nop
lea esi, [esi]
je 0x5076f6
cmp eax, 0xa9726571
nop
lea esi, [esi]
je 0x5076f6
mov edi, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xfc]
mov esi, dword [ebp - 0xf8]
mov dword [ebp - 0x134], edi
cmp edi, eax
mov dword [ebp - 0x138], esi
jl 0x507bec
jg 0x507bd4
mov edx, dword [ebp - 0x100]
cmp esi, edx
jbe 0x507bec
mov ecx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0xfc]
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x134], ebx
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x190], esp
add eax, 0x1a
and eax, 0xfffffff0
call fcn.00aa20e0
mov edi, dword [ebp - 0x138]
mov ebx, dword [ebp - 0x1ac]
lea eax, [esp + 0x33]
sub edi, 8
and eax, 0xfffffff0
test edi, edi
mov esi, dword [ebx + 0x20]
jle 0x508050
mov dword [ebp - 0x114], eax
lea eax, [esi + 0x64]
mov dword [ebp - 0x1e0], eax
jmp 0x507c73
cmp edx, eax
mov ebx, ecx
jb 0x507ca0
cmp ebx, edi
jle 0x507c41
mov ebx, edi
mov eax, dword [ebp - 0x1e0]
sub edi, ebx
add eax, dword [esi + 0x24]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x114]
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
add dword [esi + 0x24], ebx
test edi, edi
jle 0x508050
add dword [ebp - 0x114], ebx
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
mov ecx, edx
sub ecx, eax
jne 0x507c35
mov dword [esp], esi
call fcn.005280b0
test eax, eax
je 0x508050
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
mov ebx, edx
sub ebx, eax
cmp edx, eax
jae 0x507c3b
lea esi, [esi]
mov dword [esp + 8], 0xb173d8
mov dword [esp + 4], 2
mov dword [esp], 7
call fcn.00405fb0
jmp 0x507c3b
jl 0x506fc9
cmp dword [ebp - 0x130], 8
nop
ja 0x50754e
jmp 0x506fc9
mov edx, dword [ebp - 0x18c]
mov eax, dword [edx + 0x20]
cmp eax, 0xff
jg 0x50a89e
test eax, eax
je 0x5083f9
mov dword [esp], 0x90
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x1bc], eax
mov dword [esp + 8], 0x90
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov ecx, dword [ebp - 0x18c]
mov eax, dword [ecx + 0x20]
mov dword [esp + 8], 0xb1794e
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov ebx, dword [ebp - 0x18c]
mov esi, dword [ebp - 0x1bc]
mov eax, dword [ebx + 0x20]
mov dword [esi], eax
mov eax, dword [ebx + 0x20]
mov dword [ebx + eax*4 + 0x24], esi
mov dword [esp + 8], esi
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
add eax, dword [ebp - 0x188]
adc edx, dword [ebp - 0x184]
mov dword [esp], eax
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 0x1ac]
call fcn.00506d70
mov eax, dword [ebx + 0x424]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00503700
mov eax, dword [esi + 4]
cmp eax, 2
je 0x50841a
cmp eax, 4
je 0x508b9a
cmp eax, 1
je 0x508aea
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xb1833c
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov dword [esp + 8], 0xb1793e
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov ecx, dword [ebp - 0x18c]
add dword [ecx + 0x20], 1
jmp 0x506fc9
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
add eax, dword [ebp - 0x188]
adc edx, dword [ebp - 0x184]
mov dword [esp], eax
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 0x1ac]
call fcn.00506d70
jmp 0x506fc9
mov esi, dword [ebp - 0x1ac]
mov ebx, dword [esi + 0x20]
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebx + 0x28]
jae 0x5083ae
movzx esi, byte [ebx + eax + 0x64]
lea ecx, [eax + 1]
mov dword [ebx + 0x24], ecx
shl esi, 8
cmp ecx, dword [ebx + 0x28]
jae 0x508861
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov dword [ebp - 0x10c], eax
cmp ecx, dword [ebx + 0x28]
jae 0x508844
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edi, eax
cmp ecx, dword [ebx + 0x28]
jae 0x50881c
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edx, eax
mov eax, dword [ebp - 0x10c]
or eax, esi
shl eax, 8
or eax, edi
shl eax, 8
or eax, edx
bswap eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xb18364
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
jmp 0x506fc9
mov edi, dword [ebp - 0x1ac]
mov ebx, dword [edi + 0x20]
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebx + 0x28]
jae 0x508391
movzx esi, byte [ebx + eax + 0x64]
lea ecx, [eax + 1]
mov dword [ebx + 0x24], ecx
shl esi, 8
cmp ecx, dword [ebx + 0x28]
jae 0x5088ab
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov dword [ebp - 0xdc], eax
cmp ecx, dword [ebx + 0x28]
jae 0x5088cd
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edi, eax
cmp ecx, dword [ebx + 0x28]
jae 0x508883
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
mov edx, eax
or esi, dword [ebp - 0xdc]
shl esi, 8
or esi, edi
shl esi, 8
or esi, edx
cmp esi, 0xffffffef
mov dword [ebp - 0x144], esi
jbe 0x5080ae
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb18387
mov dword [esp + 4], 1
mov dword [esp], 7
call fcn.00405fb0
jmp 0x506fc9
mov eax, dword [ebx + 0x24]
mov esi, 0xffff0000
jmp 0x50771f
cmp eax, 0xa96e616d
je 0x508006
cmp eax, 0xa9707264
je 0x508683
cmp eax, 0xa9696e66
jne 0x5078b5
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0xb184b1
jmp 0x507aa4
cmp eax, 0xa9415254
je 0x508717
cmp eax, 0xa9617574
je 0x5086a9
cmp eax, 0x6e616d65
nop
lea esi, [esi]
jne 0x5078b5
mov ebx, dword [ebp - 0x1d0]
mov dword [esp + 4], 0xb184bc
add ebx, 2
mov dword [esp + 8], ebx
mov edi, dword [ebp - 0x1ac]
mov dword [esp], edi
call fcn.004c2ff0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb184c1
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
jmp 0x5078b5
mov ecx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0xfc]
sub ecx, dword [ebp - 0x138]
sbb ebx, dword [ebp - 0x134]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x12c], ebx
mov esp, dword [ebp - 0x190]
jmp 0x507534
mov dword [esp], edx
call fcn.005280b0
test eax, eax
je 0x507362
mov edi, dword [ebp - 0x1d4]
mov eax, dword [ebp - 0x1d4]
mov edi, dword [edi + 0x28]
mov ecx, edi
sub ecx, dword [eax + 0x24]
mov dword [ebp - 0x1f4], edi
jmp 0x50732f
mov eax, dword [ebp - 0x98]
sub eax, 4
mov dword [ebp - 0x140], eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x1c8], eax
mov eax, dword [ebp - 0x144]
add eax, 0x10
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, dword [ebp - 0x144]
mov dword [ebp - 0x1cc], eax
mov dword [esp + 0x10], edx
mov ecx, dword [ebp - 0x140]
mov dword [esp + 8], 0xb183a4
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], ecx
call fcn.00405fb0
mov edi, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x1ac]
test edi, edi
mov esi, dword [ebx + 0x20]
jle 0x5081be
mov eax, dword [ebp - 0x1c8]
lea edx, [esi + 0x64]
mov dword [ebp - 0x1e4], edx
mov dword [ebp - 0x11c], eax
jmp 0x50817a
cmp eax, edx
mov ebx, ecx
ja 0x5081a0
cmp ebx, edi
jle 0x50814c
mov ebx, edi
mov eax, dword [ebp - 0x1e4]
sub edi, ebx
add eax, dword [esi + 0x24]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x11c]
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
add dword [esi + 0x24], ebx
test edi, edi
jle 0x5081be
add dword [ebp - 0x11c], ebx
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
mov ecx, edx
sub ecx, eax
jne 0x508140
mov dword [esp], esi
call fcn.005280b0
test eax, eax
je 0x5081be
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
mov ebx, edx
sub ebx, eax
cmp eax, edx
jbe 0x508146
mov dword [esp + 8], 0xb173d8
mov dword [esp + 4], 2
mov dword [esp], 7
call fcn.00405fb0
jmp 0x508146
mov ebx, dword [ebp - 0x1c8]
mov esi, dword [ebp - 0x140]
mov edi, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x90], ebx
lea ebx, [ebp - 0x90]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x80], eax
mov dword [esp + 8], 0x38
mov dword [esp + 4], 0xb183c5
mov dword [esp], ebx
call fcn.00a15cd0
test eax, eax
jne 0x50aaf3
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.00a140e0
cmp eax, 1
ja 0x50ab18
mov eax, dword [ebp - 0x7c]
cmp dword [ebp - 0x144], eax
je 0x508274
mov dword [esp + 0x10], eax
mov edx, dword [ebp - 0x144]
mov dword [esp + 8], 0xb18404
mov dword [esp + 4], 2
mov dword [esp], 7
mov dword [esp + 0xc], edx
call fcn.00405fb0
mov dword [esp], ebx
call fcn.00a13bb0
mov ecx, dword [ebp - 0x1ac]
mov ebx, dword [ebp - 0x144]
mov ecx, dword [ecx + 0x20]
mov dword [ebp - 0x13c], ecx
mov dword [esp + 4], ebx
mov esi, dword [ebp - 0x1cc]
mov ebx, 8
mov dword [esp], esi
xor esi, esi
call fcn.00529110
mov edi, dword [ebp - 0x1ac]
mov dword [ebp - 0x1d4], eax
mov dword [edi + 0x20], eax
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x1f4], eax
mov edx, dword [ebp - 0x1d4]
mov eax, dword [ebp - 0x1f4]
sub eax, dword [edx + 0x24]
je 0x508366
mov ecx, eax
mov edx, ecx
mov eax, ecx
sar edx, 0x1f
cmp edx, esi
jl 0x5082f3
jg 0x5082ea
cmp ecx, ebx
jbe 0x5082f3
mov edx, ebx
mov ecx, ebx
mov eax, ebx
sar edx, 0x1f
mov edi, dword [ebp - 0x1d4]
add dword [edi + 0x24], ecx
sub ebx, eax
sbb esi, edx
cmp esi, 0
jg 0x5082c2
jl 0x50830c
cmp ebx, 0
ja 0x5082c2
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x144]
mov dword [esp + 4], 0
mov dword [esp], eax
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 0x1ac]
call fcn.00506d70
mov ecx, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x1ac]
mov ebx, dword [ebp - 0x1c8]
mov dword [edx + 0x20], ecx
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov esi, dword [ebp - 0x1cc]
mov dword [esp], esi
call sub.msvcrt.dll_free
jmp 0x506fc9
mov dword [esp], edx
call fcn.005280b0
test eax, eax
je 0x50830c
mov edi, dword [ebp - 0x1d4]
mov eax, dword [ebp - 0x1d4]
mov edi, dword [edi + 0x28]
mov ecx, edi
sub ecx, dword [eax + 0x24]
mov dword [ebp - 0x1f4], edi
jmp 0x5082d9
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x508d47
mov ecx, dword [ebx + 0x24]
mov esi, 0xffff0000
jmp 0x507f19
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x508d5d
mov ecx, dword [ebx + 0x24]
mov esi, 0xffff0000
jmp 0x507e71
mov dword [esp], esi
call fcn.005280b0
test eax, eax
jne 0x508d19
mov edx, dword [ebp - 0x1ac]
mov dword [ebp - 0x180], 0xffffff00
mov edx, dword [edx + 0x20]
mov dword [ebp - 0x1d4], edx
jmp 0x507302
mov dword [esp + 8], 0xb1793e
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
jmp 0x507cf7
mov edi, dword [ebp - 0x18c]
mov eax, dword [edi + 0x20]
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1ac]
mov dword [esp], eax
call fcn.004c2de0
mov dword [ebp - 0x174], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0xc], 0xb1795f
mov dword [esp + 8], 0xb17964
mov dword [esp + 4], 4
mov dword [esp + 0x10], eax
mov dword [esp], 7
call fcn.00405fb0
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x174]
mov eax, dword [edx + 0x30]
mov dword [ecx + 0xc], eax
mov ebx, dword [edx + 0x7c]
test ebx, ebx
jle 0x508493
mov eax, dword [edx + 0x80]
cmp dword [eax + 4], 0xffffffff
je 0x50a4f3
mov ebx, dword [ebp - 0x174]
mov eax, dword [ebx + 0xc]
cmp eax, 0x62776173
je 0x5096bb
cmp eax, 0x726d6173
je 0x509411
mov edx, dword [ebp - 0x1bc]
mov ebx, dword [edx + 0x48]
movzx ecx, byte [ebx + 8]
shl ecx, 8
mov dword [ebp - 0x17c], ecx
movzx eax, byte [ebx + 9]
or ecx, eax
cmp ecx, 1
mov dword [ebp - 0x17c], ecx
jle 0x508502
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0xb179ac
mov dword [esp + 4], 2
mov dword [esp], 7
call fcn.00405fb0
mov esi, dword [ebp - 0x1bc]
mov ebx, dword [esi + 0x48]
movzx eax, byte [ebx + 0x12]
movzx edx, byte [ebx + 0x13]
mov edi, dword [ebp - 0x174]
shl eax, 8
or eax, edx
mov edx, dword [ebp - 0x1bc]
sar eax, 3
mov dword [edi + 0x20], eax
mov dword [edx + 0x38], eax
movzx edx, byte [ebx + 0x10]
movzx eax, byte [ebx + 0x11]
shl edx, 8
or edx, eax
cmp edx, 2
je 0x509c41
cmp edx, 3
je 0x50a974
cmp edx, 1
je 0x50a960
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0xb179e4
mov dword [esp + 4], 2
mov dword [esp], 7
call fcn.00405fb0
mov eax, dword [ebp - 0x1bc]
mov ebx, dword [eax + 0x48]
mov edx, eax
mov dword [eax + 0x34], 2
mov eax, dword [edx + 0x34]
mov ecx, dword [ebp - 0x174]
mov dword [ecx + 0x24], eax
movzx eax, byte [ebx + 0x18]
movzx edx, byte [ebx + 0x19]
shl eax, 8
or eax, edx
cmp eax, 0x1b57
mov dword [ecx + 0x1c], eax
jg 0x50943a
mov esi, dword [ebp - 0x1bc]
mov eax, dword [esi + 0x70]
test eax, eax
je 0x50943a
mov ecx, dword [eax + 4]
cmp ecx, 1
jbe 0x50943a
movzx eax, byte [ebx + 0x18]
movzx edx, byte [ebx + 0x19]
shl eax, 8
or eax, edx
xor edx, edx
div ecx
cmp eax, 0x2b
je 0x50aae1
cmp eax, 0x2f
je 0x50aacf
cmp eax, 0x1f
je 0x50ab3d
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xb17a24
mov dword [esp + 4], 2
mov dword [esp], 7
call fcn.00405fb0
mov ecx, dword [ebp - 0x174]
mov dword [ecx + 0x1c], 0xac44
jmp 0x50943a
jl 0x50862f
cmp dword [ebp - 0x98], 8
ja 0x50751c
mov byte [ebp - 0x10d], 0
jmp 0x50751c
mov ebx, dword [ebp - 0x1d0]
mov dword [esp + 4], 0xb18512
add ebx, 2
mov dword [esp + 8], ebx
mov edx, dword [ebp - 0x1ac]
mov dword [esp], edx
call fcn.004c2ff0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb1851a
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
jmp 0x5078b5
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0xb1854f
jmp 0x507aa4
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0xb184d9
jmp 0x507aa4
mov ebx, dword [ebp - 0x1d0]
mov dword [esp + 4], 0xb18483
add ebx, 2
mov dword [esp + 8], ebx
mov ecx, dword [ebp - 0x1ac]
mov dword [esp], ecx
call fcn.004c2ff0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb1848a
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
jmp 0x5078b5
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0xb18529
jmp 0x507aa4
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0xb18571
jmp 0x507aa4
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0xb184cc
jmp 0x507aa4
mov dword [esp], ebx
call fcn.005280b0
mov edx, 0xffffff00
test eax, eax
je 0x5073cd
mov eax, dword [ebx + 0x24]
movzx edx, byte [eax + ebx + 0x64]
add eax, 1
mov dword [ebx + 0x24], eax
jmp 0x5073cd
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x508ceb
mov ecx, dword [ebx + 0x24]
mov esi, 0xffffff00
jmp 0x5073b7
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x508cf5
mov ecx, dword [ebx + 0x24]
mov edi, 0xffffff00
jmp 0x5073a1
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x508cfd
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0xe0], 0xffff0000
jmp 0x50738b
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0xb1855e
jmp 0x507aa4
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0xb18542
jmp 0x507aa4
mov ebx, dword [ebp - 0x1d0]
mov dword [esp + 4], 0xb184e8
add ebx, 2
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x1ac]
mov dword [esp], eax
call fcn.004c2ff0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb184f1
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
jmp 0x5078b5
mov dword [esp], ebx
call fcn.005280b0
mov edx, 0xffffff00
test eax, eax
je 0x507eb7
mov eax, dword [ebx + 0x24]
movzx edx, byte [eax + ebx + 0x64]
add eax, 1
mov dword [ebx + 0x24], eax
jmp 0x507eb7
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x508d83
mov ecx, dword [ebx + 0x24]
mov edi, 0xffffff00
jmp 0x507ea1
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x508d73
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x10c], 0xffffff00
jmp 0x507e8b
mov dword [esp], ebx
call fcn.005280b0
mov edx, 0xffffff00
test eax, eax
je 0x507f5f
mov eax, dword [ebx + 0x24]
movzx edx, byte [eax + ebx + 0x64]
add eax, 1
mov dword [ebx + 0x24], eax
jmp 0x507f5f
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x508d7b
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0xdc], 0xffffff00
jmp 0x507f33
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x508ce3
mov ecx, dword [ebx + 0x24]
mov edi, 0xffffff00
jmp 0x507f49
mov eax, dword [ebp - 0x1ac]
mov edi, dword [eax + 0x20]
mov edx, dword [edi + 0x24]
cmp edx, dword [edi + 0x28]
jae 0x509869
movzx eax, byte [edi + edx + 0x64]
lea esi, [edx + 1]
mov dword [edi + 0x24], esi
mov edx, eax
sar edx, 0x1f
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0xa4], edx
mov ebx, dword [ebp - 0xa4]
shld ebx, ecx, 8
shl ecx, 8
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xa4], ebx
cmp esi, dword [edi + 0x28]
jae 0x509835
movzx eax, byte [edi + esi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov edx, eax
sar edx, 0x1f
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
cmp esi, dword [edi + 0x28]
jae 0x509801
movzx eax, byte [edi + esi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov ebx, eax
sar ebx, 0x1f
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], ebx
cmp esi, dword [edi + 0x28]
jae 0x5097cd
movzx eax, byte [edi + esi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov ecx, eax
sar ecx, 0x1f
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], ecx
cmp esi, dword [edi + 0x28]
jae 0x509799
movzx eax, byte [edi + esi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov edx, eax
sar edx, 0x1f
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
cmp esi, dword [edi + 0x28]
jae 0x509765
movzx eax, byte [edi + esi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov ebx, eax
sar ebx, 0x1f
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ebx
cmp esi, dword [edi + 0x28]
jae 0x509731
movzx eax, byte [edi + esi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov ecx, eax
sar ecx, 0x1f
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], ecx
cmp esi, dword [edi + 0x28]
jae 0x5096e9
movzx eax, byte [esi + edi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov esi, eax
sar esi, 0x1f
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], esi
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xac]
or eax, dword [ebp - 0xa8]
or edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xb8]
mov ebx, dword [ebp - 0xb4]
shld edx, eax, 8
shl eax, 8
or ecx, eax
mov eax, dword [ebp - 0xc0]
or ebx, edx
mov edx, dword [ebp - 0xbc]
shld ebx, ecx, 8
shl ecx, 8
or eax, ecx
mov ecx, dword [ebp - 0xc8]
or edx, ebx
mov ebx, dword [ebp - 0xc4]
shld edx, eax, 8
shl eax, 8
or ecx, eax
mov eax, dword [ebp - 0xd0]
or ebx, edx
mov edx, dword [ebp - 0xcc]
shld ebx, ecx, 8
shl ecx, 8
or eax, ecx
mov ecx, dword [ebp - 0xd8]
or edx, ebx
mov ebx, dword [ebp - 0xd4]
shld edx, eax, 8
shl eax, 8
or ecx, eax
mov eax, dword [ebp - 0x108]
or ebx, edx
shld ebx, ecx, 8
shl ecx, 8
or eax, ecx
mov ecx, dword [ebp - 0x18c]
mov ebx, ecx
mov dword [ecx + 0x428], eax
jmp 0x50747f
mov esi, dword [ebp - 0x18c]
mov eax, dword [esi + 0x20]
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov edi, dword [ebp - 0x1ac]
mov dword [esp], edi
call fcn.004c2ce0
mov dword [ebp - 0x150], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0xc], 0xb1795f
mov dword [esp + 8], 0xb17d34
mov dword [esp + 4], 4
mov dword [esp + 0x10], eax
mov dword [esp], 7
call fcn.00405fb0
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x150]
mov eax, dword [edx + 0x30]
mov dword [ecx + 0xc], eax
mov ebx, dword [edx + 0x7c]
test ebx, ebx
jle 0x508b63
mov eax, dword [edx + 0x80]
cmp dword [eax + 4], 0xffffffff
je 0x50a536
mov ebx, dword [ebp - 0x1bc]
mov edx, dword [ebx + 0x44]
cmp edx, 0x4d
jg 0x508d8b
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0xb17d7c
mov dword [esp + 4], 2
mov dword [esp], 5
call fcn.00405fb0
jmp 0x507de6
mov edi, dword [ebp - 0x1bc]
mov eax, dword [edi + 0x30]
cmp eax, 0x7334706d
je 0x508c75
cmp eax, 0x67337874
je 0x508c75
cmp eax, 0x74786574
je 0x508c75
mov edx, dword [ebp - 0x1bc]
mov eax, dword [edx]
mov dword [esp + 8], 0xb18304
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
jmp 0x507de6
mov dword [esp], ebx
call fcn.005280b0
mov edx, 0xffffff00
test eax, eax
je 0x507461
mov eax, dword [ebx + 0x24]
movzx edx, byte [eax + ebx + 0x64]
add eax, 1
mov dword [ebx + 0x24], eax
jmp 0x507461
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x509401
mov ecx, dword [ebx + 0x24]
mov esi, 0xffffff00
jmp 0x50744b
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x509409
mov ecx, dword [ebx + 0x24]
mov edi, 0xffffff00
jmp 0x507435
mov dword [esp], ebx
call fcn.005280b0
test eax, eax
jne 0x5093e5
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0xe4], 0xffff0000
jmp 0x50741f
mov edx, dword [ebp - 0x18c]
mov eax, dword [edx + 0x20]
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x1ac]
mov dword [esp], ecx
call fcn.004c2f00
mov ebx, dword [ebp - 0x18c]
mov esi, eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0xc], 0xb1795f
mov dword [esp + 8], 0xb182dc
mov dword [esp + 4], 4
mov dword [esp + 0x10], eax
mov dword [esp], 7
call fcn.00405fb0
mov edi, dword [ebp - 0x1bc]
cmp dword [edi + 0x30], 0x7334706d
je 0x509f0c
mov byte [esi + 4], 0x74
jmp 0x507de6
mov ecx, dword [ebx + 0x24]
jmp 0x507f3c
mov ecx, dword [ebx + 0x24]
nop
jmp 0x5073aa
mov ecx, dword [ebx + 0x24]
jmp 0x507394
mov ecx, dword [ebx + 0x24]
movzx esi, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
shl esi, 8
mov dword [ebp - 0xe0], esi
jmp 0x50738b
mov ecx, dword [ebp - 0x1d4]
mov esi, dword [ebp - 0x1ac]
mov eax, dword [ecx + 0x24]
mov esi, dword [esi + 0x20]
movzx ebx, byte [eax + ecx + 0x64]
add eax, 1
mov dword [ecx + 0x24], eax
mov dword [ebp - 0x1d4], esi
mov dword [ebp - 0x180], ebx
jmp 0x5072f2
mov ecx, dword [ebx + 0x24]
movzx esi, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
shl esi, 8
jmp 0x507f19
mov ecx, dword [ebx + 0x24]
movzx esi, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
shl esi, 8
jmp 0x507e71
mov ecx, dword [ebx + 0x24]
jmp 0x507e7a
mov ecx, dword [ebx + 0x24]
jmp 0x507f22
mov ecx, dword [ebx + 0x24]
jmp 0x507e94
mov eax, dword [ebx + 0x48]
movzx edi, byte [eax + 0x4a]
shl edi, 8
mov dword [ebp - 0x164], edi
movzx eax, byte [eax + 0x4b]
or edi, eax
lea eax, [edx + 8]
mov dword [ebp - 0x164], edi
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov esi, eax
mov eax, dword [ebp - 0x1bc]
lea ecx, [esi + 0x32]
mov dword [eax + 0x88], esi
mov edx, eax
mov eax, dword [eax + 0x44]
mov ebx, dword [edx + 0x48]
add eax, 8
mov dword [esi], eax
mov eax, dword [edx + 0x30]
mov dword [esi + 4], eax
movzx edx, byte [ebx + 8]
movzx eax, byte [ebx + 9]
shl edx, 8
or eax, edx
mov word [esi + 0x10], ax
movzx edx, byte [ebx + 0xa]
movzx eax, byte [ebx + 0xb]
shl edx, 8
or eax, edx
mov word [esi + 0x12], ax
movzx edx, byte [ebx + 0xc]
movzx eax, byte [ebx + 0xd]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ebx + 0xf]
or edx, eax
movzx eax, byte [ebx + 0xe]
shl eax, 8
or edx, eax
mov dword [esi + 0x14], edx
movzx edx, byte [ebx + 0x10]
movzx eax, byte [ebx + 0x11]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ebx + 0x13]
or edx, eax
movzx eax, byte [ebx + 0x12]
shl eax, 8
or edx, eax
mov dword [esi + 0x18], edx
movzx edx, byte [ebx + 0x14]
movzx eax, byte [ebx + 0x15]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ebx + 0x17]
or edx, eax
movzx eax, byte [ebx + 0x16]
shl eax, 8
or edx, eax
mov dword [esi + 0x1c], edx
movzx edx, byte [ebx + 0x18]
movzx eax, byte [ebx + 0x19]
shl edx, 8
or eax, edx
mov word [esi + 0x20], ax
movzx edx, byte [ebx + 0x1a]
movzx eax, byte [ebx + 0x1b]
shl edx, 8
or eax, edx
mov word [esi + 0x22], ax
movzx edx, byte [ebx + 0x1c]
movzx eax, byte [ebx + 0x1d]
mov edi, dword [ebp - 0x1bc]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ebx + 0x1f]
or edx, eax
movzx eax, byte [ebx + 0x1e]
shl eax, 8
or edx, eax
mov dword [esi + 0x24], edx
movzx edx, byte [ebx + 0x20]
movzx eax, byte [ebx + 0x21]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ebx + 0x23]
or edx, eax
movzx eax, byte [ebx + 0x22]
shl eax, 8
or edx, eax
mov dword [esi + 0x28], edx
movzx edx, byte [ebx + 0x24]
movzx eax, byte [ebx + 0x25]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ebx + 0x27]
or edx, eax
movzx eax, byte [ebx + 0x26]
shl eax, 8
or edx, eax
mov dword [esi + 0x2c], edx
movzx edx, byte [ebx + 0x28]
movzx eax, byte [ebx + 0x29]
shl edx, 8
or eax, edx
mov edx, ebx
add edx, 0x2a
mov word [esi + 0x30], ax
mov eax, dword [edx]
mov dword [esi + 0x32], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x18], eax
mov eax, dword [edx + 0x1c]
mov dword [ecx + 0x1c], eax
movzx edx, byte [ebx + 0x4a]
movzx eax, byte [ebx + 0x4b]
shl edx, 8
or eax, edx
mov word [esi + 0x52], ax
movzx edx, byte [ebx + 0x4c]
movzx eax, byte [ebx + 0x4d]
shl edx, 8
or eax, edx
mov edx, dword [edi + 0x44]
mov word [esi + 0x54], ax
cmp edx, 0x4e
jg 0x50a286
mov eax, dword [ebp - 0x150]
cmp edx, 0x55
mov ecx, edx
mov dword [eax + 0x150], esi
jle 0x5090c5
mov dword [ebp - 0x14c], 0x4e
mov eax, dword [ebp - 0x14c]
jmp 0x509028
cmp ecx, 0x67616d61
je 0x509cc9
jg 0x509c55
cmp ecx, 0x6669656c
je 0x509c9b
mov dword [esp + 0x1c], esi
mov edx, dword [ebp - 0x14c]
movzx eax, byte [ebx + edx + 7]
mov dword [esp + 0x18], eax
movzx eax, byte [ebx + edx + 6]
mov dword [esp + 0x14], eax
movzx eax, byte [ebx + edx + 5]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0xb180e4
mov dword [esp + 4], 6
mov dword [esp + 0x10], eax
mov dword [esp], 7
call fcn.00405fb0
mov ecx, dword [ebp - 0x1bc]
mov ebx, dword [ecx + 0x48]
cmp esi, 7
jle 0x5090c5
mov esi, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0xa0]
mov ecx, dword [esi + 0x44]
add eax, 8
cmp ecx, eax
jl 0x5090c5
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0x14c], edi
mov eax, edi
lea edx, [ebx + eax]
movzx eax, byte [edx]
movzx esi, byte [edx + 3]
shl eax, 0x18
or esi, eax
movzx eax, byte [edx + 1]
shl eax, 0x10
or esi, eax
movzx eax, byte [edx + 2]
mov edx, dword [ebp - 0x14c]
shl eax, 8
or esi, eax
add edx, esi
cmp ecx, edx
mov dword [ebp - 0xa0], edx
jl 0x5090c5
mov ecx, dword [ebp - 0x14c]
lea edx, [ecx + ebx + 4]
movzx edi, byte [edx]
movzx ecx, byte [edx + 3]
mov eax, edi
shl eax, 0x18
or ecx, eax
movzx eax, byte [edx + 1]
shl eax, 0x10
or ecx, eax
movzx eax, byte [edx + 2]
shl eax, 8
or ecx, eax
cmp ecx, 0x65736473
je 0x509db8
jg 0x508f8b
cmp ecx, 0x61766343
je 0x509d81
cmp ecx, 0x64323633
lea esi, [esi]
je 0x509d25
test ecx, ecx
je 0x508ff7
nop
jmp 0x508fa9
mov esi, dword [ebp - 0x1bc]
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x18]
test eax, eax
jle 0x50a52f
mov eax, dword [esi + 0x70]
xor edx, edx
mov eax, dword [eax + 4]
push edx
push eax
fild qword [esp]
add esp, 8
push ecx
mov eax, dword [ebp - 0x150]
fild dword [esp]
add esp, 4
fdivrp st(1)
mov edx, dword [ebp - 0x150]
fst dword [eax + 0xec]
fdivr dword [0xb18b10]
fstp dword [eax + 0xf0]
movzx esi, byte [ebx + 0x18]
movzx eax, byte [ebx + 0x19]
shl esi, 8
or esi, eax
mov dword [edx + 0xfc], esi
movzx ecx, byte [ebx + 0x1a]
movzx eax, byte [ebx + 0x1b]
shl ecx, 8
or ecx, eax
test esi, esi
mov dword [edx + 0x100], ecx
jne 0x509352
test ecx, ecx
jne 0x509352
mov ebx, dword [ebp - 0x1bc]
mov esi, dword [ebp - 0x150]
mov ecx, dword [ebx + 0x40]
movzx eax, byte [ecx + 0x4c]
movzx edx, byte [ecx + 0x4d]
shl eax, 8
or eax, edx
mov dword [esi + 0xfc], eax
movzx eax, byte [ecx + 0x50]
movzx edx, byte [ecx + 0x51]
shl eax, 8
or eax, edx
mov dword [esi + 0x100], eax
cmp dword [ebp - 0x164], 0x28
jg 0x5093a9
cmp dword [ebp - 0x164], 0x20
mov dword [ebp - 0x154], 0
jg 0x5093cf
cmp dword [ebp - 0x164], 2
je 0x509a35
cmp dword [ebp - 0x164], 4
je 0x509a35
cmp dword [ebp - 0x164], 8
je 0x50a885
mov edx, dword [ebp - 0x1bc]
cmp dword [edx + 0x30], 0x31637661
jne 0x50a470
mov eax, dword [edx + 0x50]
cmp eax, 0xffffffd7
jbe 0x50920e
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xb18264
mov dword [esp + 4], 1
mov dword [esp], 5
call fcn.00405fb0
mov ecx, dword [ebp - 0x1bc]
mov dword [ecx + 0x50], 0
mov ebx, dword [ebp - 0x1bc]
mov eax, dword [ebx + 0x50]
add eax, 0x28
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, dword [ebx + 0x50]
mov esi, dword [ebp - 0x150]
add edx, 0x28
mov dword [esi + 0x14c], eax
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebx + 0x50]
mov edx, dword [esi + 0x14c]
add eax, 0x28
mov dword [edx], eax
mov ecx, edx
mov eax, dword [ebx + 0x50]
mov edx, dword [ebx + 0x4c]
add ecx, 0x28
mov dword [esp], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 0x4c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ecx, dword [esi + 0x14c]
mov esi, dword [ebp - 0x150]
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x4c], 0
mov eax, dword [esi + 0xfc]
mov ebx, dword [ebp - 0x1bc]
movzx edi, word [ebp - 0x164]
mov word [ecx + 0xc], 0
mov dword [ecx + 4], eax
mov edx, dword [esi + 0x100]
mov word [ecx + 0xe], di
mov dword [ecx + 8], edx
mov eax, dword [ebx + 0x30]
imul edx, dword [ecx + 4]
mov dword [ecx + 0x10], eax
movsx eax, di
mov dword [ecx + 0x14], edx
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x100]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xfc]
mov dword [esp + 8], 0xb18289
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
cmp dword [ebx + 0x3c], 0x51
jg 0x50a4ad
mov esi, dword [ebp - 0x1bc]
mov edx, dword [esi + 0x48]
lea eax, [edx + 0x2b]
mov dword [esp + 0x14], eax
movzx eax, byte [edx + 0x2a]
mov dword [esp + 8], 0xb182be
mov dword [esp + 4], 6
mov dword [esp], 7
and eax, 0x1f
mov dword [esp + 0x10], eax
mov eax, esi
add eax, 0x30
mov dword [esp + 0xc], eax
call fcn.00405fb0
jmp 0x507de6
mov edi, dword [ebp - 0x1bc]
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + 0x4c]
movzx eax, byte [ecx + 0x4d]
shl edx, 8
or edx, eax
cmp esi, edx
je 0x50917b
push edx
mov eax, dword [ebp - 0x150]
fild dword [esp]
fst dword [eax + 0xf4]
movzx eax, byte [ecx + 0x50]
movzx edx, byte [ecx + 0x51]
shl eax, 8
or eax, edx
mov dword [esp], eax
mov edx, dword [ebp - 0x150]
fild dword [esp]
add esp, 4
fdivp st(1)
fstp dword [edx + 0xf4]
jmp 0x50917b
mov ecx, dword [ebp - 0x164]
mov dword [esp + 8], 0xb18112
mov dword [esp + 4], 4
mov dword [esp], 7
mov dword [esp + 0xc], ecx
call fcn.00405fb0
and dword [ebp - 0x164], 0x1f
mov dword [ebp - 0x154], 1
jmp 0x50919f
mov ecx, dword [ebx + 0x24]
movzx eax, byte [ecx + ebx + 0x64]
add ecx, 1
mov dword [ebx + 0x24], ecx
shl eax, 8
mov dword [ebp - 0xe4], eax
jmp 0x50741f
mov ecx, dword [ebx + 0x24]
jmp 0x50743e
mov ecx, dword [ebx + 0x24]
jmp 0x507428
mov esi, dword [ebp - 0x1bc]
mov dword [ebx + 0x20], 1
mov dword [esi + 0x38], 1
mov dword [ebx + 0x24], 1
mov dword [esi + 0x34], 1
mov dword [ebx + 0x1c], 0x1f40
mov ebx, dword [ebp - 0x174]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 8], 0xb17a6c
mov dword [esp + 4], 6
mov dword [esp], 7
shl eax, 3
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov esi, dword [ebp - 0x1bc]
cmp dword [esi + 0x44], 0x2b
jle 0x50948d
mov ecx, dword [esi + 0x48]
cmp byte [ecx + 9], 0
jne 0x50a2ad
cmp dword [ebp - 0x17c], 1
mov edi, 0x30
mov eax, 0x54
je 0x5094c2
cmp dword [ebp - 0x17c], 2
mov di, 0x44
mov al, 0x68
je 0x5094c2
mov edx, dword [ebp - 0x17c]
xor di, di
mov al, 0x24
test edx, edx
jne 0x50993c
mov edx, dword [ebp - 0x1bc]
cmp dword [edx + 0x44], eax
jl 0x50958d
mov esi, dword [edx + 0x48]
lea edx, [esi + edi + 0x1c]
movzx eax, byte [edx]
movzx ebx, byte [edx + 3]
shl eax, 0x18
or ebx, eax
movzx eax, byte [edx + 1]
shl eax, 0x10
or ebx, eax
movzx eax, byte [edx + 2]
lea edx, [esi + edi + 0x20]
movzx ecx, byte [edx]
shl eax, 8
or ebx, eax
mov dword [ebp - 0x1a0], ecx
mov eax, dword [ebp - 0x1a0]
movzx ecx, byte [edx + 3]
shl eax, 0x18
or ecx, eax
movzx eax, byte [edx + 1]
shl eax, 0x10
or ecx, eax
movzx eax, byte [edx + 2]
shl eax, 8
or ecx, eax
cmp ecx, 0x64616d72
je 0x50a179
cmp ecx, 0x65736473
je 0x509e04
cmp ecx, 0x616c6163
je 0x509bd1
mov dword [esp + 0x1c], ebx
movzx eax, byte [esi + edi + 0x23]
mov dword [esp + 0x18], eax
movzx eax, byte [esi + edi + 0x22]
mov dword [esp + 0x14], eax
movzx eax, byte [esi + edi + 0x21]
mov dword [esp + 0x10], eax
mov esi, dword [ebp - 0x1a0]
mov dword [esp + 8], 0xb17d04
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], esi
call fcn.00405fb0
mov eax, dword [ebp - 0x1bc]
mov dword [esp + 8], 0xb17c56
mov dword [esp + 4], 6
mov dword [esp], 7
add eax, 0x30
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov eax, 0x12
mov dword [ebp - 0x178], 0
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, dword [ebp - 0x174]
mov dword [edx + 0x9c], eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov word [eax + 0x10], 0
mov ecx, dword [ebp - 0x1bc]
mov esi, dword [edx + 0x9c]
mov eax, dword [edx + 0x24]
mov edi, dword [ebp - 0x174]
mov ebx, dword [ecx + 0x48]
mov word [esi + 2], ax
movzx eax, byte [ebx + 0x12]
movzx edx, byte [ebx + 0x13]
shl eax, 8
add eax, edx
mov word [esi + 0xe], ax
mov eax, dword [edi + 0x1c]
mov dword [esi + 4], eax
cmp dword [ecx + 0x44], 0x2b
jle 0x50963d
cmp byte [ebx + 9], 0
jne 0x5098bc
movzx edx, word [esi + 2]
movzx eax, word [esi + 0xe]
imul eax, edx
mov edx, dword [ebp - 0x174]
imul eax, dword [esi + 4]
shr eax, 3
mov dword [esi + 8], eax
cmp dword [edx + 0xc], 0x1100736d
je 0x509def
mov esi, dword [ebp - 0x178]
test esi, esi
je 0x507de6
mov ebx, dword [ebp - 0x174]
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
je 0x507de6
mov edx, dword [ebx + 0x9c]
mov eax, dword [ebx + 0xa4]
mov dword [esp + 8], ecx
add edx, 0x12
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [ebx + 0x9c]
mov eax, dword [ebx + 0xa8]
mov word [edx + 0x10], ax
jmp 0x507de6
mov eax, dword [ebp - 0x1bc]
mov dword [ebx + 0x20], 1
mov dword [eax + 0x38], 1
mov dword [ebx + 0x24], 1
mov dword [eax + 0x34], 1
mov dword [ebx + 0x1c], 0x3e80
jmp 0x50943a
mov dword [esp], edi
call fcn.005280b0
mov dword [ebp - 0x108], 0xffffff00
mov dword [ebp - 0x104], 0xffffffff
test eax, eax
je 0x508a3d
mov eax, dword [edi + 0x24]
movzx edx, byte [eax + edi + 0x64]
add eax, 1
mov dword [edi + 0x24], eax
mov edi, edx
sar edi, 0x1f
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x104], edi
jmp 0x508a3d
mov dword [esp], edi
call fcn.005280b0
test eax, eax
je 0x509a19
mov esi, dword [edi + 0x24]
movzx eax, byte [esi + edi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov ebx, eax
sar ebx, 0x1f
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], ebx
jmp 0x508a18
mov dword [esp], edi
call fcn.005280b0
test eax, eax
je 0x5099fd
mov esi, dword [edi + 0x24]
movzx eax, byte [esi + edi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov edx, eax
sar edx, 0x1f
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
jmp 0x5089f3
mov dword [esp], edi
call fcn.005280b0
test eax, eax
je 0x5099e1
mov esi, dword [edi + 0x24]
movzx eax, byte [esi + edi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov ecx, eax
sar ecx, 0x1f
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], ecx
jmp 0x5089ce
mov dword [esp], edi
call fcn.005280b0
test eax, eax
je 0x5099c5
mov esi, dword [edi + 0x24]
movzx eax, byte [esi + edi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov ebx, eax
sar ebx, 0x1f
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], ebx
jmp 0x5089a9
mov dword [esp], edi
call fcn.005280b0
test eax, eax
je 0x5099a9
mov esi, dword [edi + 0x24]
movzx eax, byte [esi + edi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov edx, eax
sar edx, 0x1f
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
jmp 0x508984
mov dword [esp], edi
call fcn.005280b0
test eax, eax
je 0x50998d
mov esi, dword [edi + 0x24]
movzx eax, byte [esi + edi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov ecx, eax
sar ecx, 0x1f
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], ecx
jmp 0x50895f
mov dword [esp], edi
call fcn.005280b0
test eax, eax
je 0x509971
mov esi, dword [edi + 0x24]
movzx eax, byte [esi + edi + 0x64]
add esi, 1
mov dword [edi + 0x24], esi
mov ebx, eax
sar ebx, 0x1f
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xa4], ebx
mov edx, dword [ebp - 0xa4]
shld edx, eax, 8
shl eax, 8
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], edx
jmp 0x50893a
movzx edx, byte [ebx + 0x1c]
movzx eax, byte [ebx + 0x1d]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ebx + 0x1f]
or edx, eax
movzx eax, byte [ebx + 0x1e]
mov edi, edx
shl eax, 8
or edi, eax
jle 0x50963d
mov eax, edi
movzx ecx, word [esi + 2]
sar eax, 1
mov dword [ebp - 0x1c0], eax
movzx edx, byte [ebx + 0x20]
movzx eax, byte [ebx + 0x21]
imul ecx, dword [esi + 4]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ebx + 0x23]
or edx, eax
movzx eax, byte [ebx + 0x22]
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x1c0]
imul ecx, edx
xor edx, edx
add eax, ecx
div edi
mov dword [esi + 8], eax
movzx eax, byte [ebx + 0x26]
movzx edx, byte [ebx + 0x27]
shl eax, 8
or edx, eax
mov word [esi + 0xc], dx
jmp 0x509665
mov edi, dword [ebp - 0x17c]
mov dword [esp + 8], 0xb17b60
mov dword [esp + 4], 2
mov dword [esp], 7
mov dword [esp + 0xc], edi
mov edi, 0x44
call fcn.00405fb0
mov eax, 0x68
jmp 0x5094c2
mov esi, dword [edi + 0x24]
mov dword [ebp - 0xa8], 0xffff0000
mov dword [ebp - 0xa4], 0xffffffff
jmp 0x50893a
mov esi, dword [edi + 0x24]
mov dword [ebp - 0xb0], 0xffffff00
mov dword [ebp - 0xac], 0xffffffff
jmp 0x50895f
mov esi, dword [edi + 0x24]
mov dword [ebp - 0xb8], 0xffffff00
mov dword [ebp - 0xb4], 0xffffffff
jmp 0x508984
mov esi, dword [edi + 0x24]
mov dword [ebp - 0xc0], 0xffffff00
mov dword [ebp - 0xbc], 0xffffffff
jmp 0x5089a9
mov esi, dword [edi + 0x24]
mov dword [ebp - 0xc8], 0xffffff00
mov dword [ebp - 0xc4], 0xffffffff
jmp 0x5089ce
mov esi, dword [edi + 0x24]
mov dword [ebp - 0xd0], 0xffffff00
mov dword [ebp - 0xcc], 0xffffffff
jmp 0x5089f3
mov esi, dword [edi + 0x24]
mov dword [ebp - 0xd8], 0xffffff00
mov dword [ebp - 0xd4], 0xffffffff
jmp 0x508a18
movzx ecx, byte [ebp - 0x164]
mov dword [ebp - 0x158], 1
shl dword [ebp - 0x158], cl
mov eax, dword [ebp - 0x158]
test eax, eax
je 0x5091c6
mov esi, dword [ebp - 0x158]
lea ebx, [esi*4 + 0x28]
mov esi, ebx
mov dword [esp], ebx
call sub.msvcrt.dll_malloc
mov edi, dword [ebp - 0x150]
mov dword [edi + 0x14c], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [edi + 0x14c]
mov edx, dword [ecx + 0x48]
mov dword [ebp - 0x1c4], eax
mov dword [eax], esi
movzx eax, byte [edx + 0x4c]
lea ecx, [edx + 0x4e]
movzx ebx, byte [edx + 0x4d]
movzx edi, byte [ecx + 3]
movzx esi, byte [edx + 0x53]
shl eax, 8
or ebx, eax
movzx eax, byte [edx + 0x4e]
shl eax, 0x18
or edi, eax
movzx eax, byte [ecx + 1]
shl eax, 0x10
or edi, eax
movzx eax, byte [ecx + 2]
mov dword [ebp - 0x160], esi
shl eax, 8
or edi, eax
movzx eax, byte [edx + 0x52]
shl eax, 8
or esi, eax
mov dword [ebp - 0x160], esi
movzx eax, byte [edx + 0x55]
mov esi, dword [ebp - 0x1c4]
mov dword [ebp - 0x15c], eax
movzx eax, byte [edx + 0x54]
mov edx, dword [ebp - 0x158]
add esi, 0x28
shl eax, 8
or dword [ebp - 0x15c], eax
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0xb18124
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov dword [esp + 0x18], ebx
mov ecx, dword [ebp - 0x160]
mov dword [esp + 0x14], ecx
mov eax, dword [ebp - 0x15c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0xb18148
mov dword [esp + 4], 7
mov dword [esp + 0x10], eax
mov dword [esp], 7
call fcn.00405fb0
and ebx, 8
je 0x50a9e1
mov eax, dword [ebp - 0x154]
test eax, eax
je 0x50a988
mov dword [esp + 8], 0xb18184
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
cmp dword [ebp - 0x158], 0x10
je 0x50b1a8
cmp dword [ebp - 0x158], 0x100
je 0x50b13a
mov ebx, dword [ebp - 0x150]
mov ecx, dword [ebx + 0x14c]
mov esi, ebx
jmp 0x509296
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb17b06
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
cmp ebx, 8
jle 0x50958d
mov eax, dword [ebp - 0x174]
mov dword [eax + 0xa8], ebx
mov dword [esp], ebx
call sub.msvcrt.dll_malloc
mov edx, dword [ebp - 0x174]
mov ebx, dword [ebp - 0x1bc]
mov dword [edx + 0xa4], eax
mov ecx, dword [ebx + 0x48]
mov edx, dword [edx + 0xa8]
mov dword [esp], eax
add ecx, 0x1c
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
jmp 0x50958d
mov esi, dword [ebp - 0x1bc]
mov edx, esi
mov dword [esi + 0x34], 2
jmp 0x50857e
cmp ecx, 0x6d6a6874
je 0x509cf7
cmp ecx, 0x6d6a7174
jne 0x508fa9
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb17e2c
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov edx, dword [ebp - 0x1bc]
mov ebx, dword [edx + 0x48]
jmp 0x508ff7
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb17df4
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov eax, dword [ebp - 0x1bc]
mov ebx, dword [eax + 0x48]
jmp 0x508ff7
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb17db8
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov edi, dword [ebp - 0x1bc]
mov ebx, dword [edi + 0x48]
jmp 0x508ff7
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb17e68
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov ecx, dword [ebp - 0x1bc]
mov ebx, dword [ecx + 0x48]
jmp 0x508ff7
mov dword [esp + 0x1c], esi
mov edx, dword [ebp - 0x14c]
movzx eax, byte [ebx + edx + 7]
mov dword [esp + 0x18], eax
movzx eax, byte [ebx + edx + 6]
mov dword [esp + 0x14], eax
movzx eax, byte [ebx + edx + 5]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0xb18078
mov dword [esp + 4], 6
mov dword [esp + 0x10], eax
mov dword [esp], 7
call fcn.00405fb0
cmp esi, 0xa
jg 0x50a572
mov edx, dword [ebp - 0x1bc]
mov ebx, dword [edx + 0x48]
jmp 0x508ff7
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb17ee0
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
cmp esi, 8
jg 0x50a5d8
mov eax, dword [ebp - 0x1bc]
mov ebx, dword [eax + 0x48]
jmp 0x508ff7
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb17ea0
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
cmp esi, 8
jg 0x50a8bf
mov edi, dword [ebp - 0x1bc]
mov ebx, dword [edi + 0x48]
jmp 0x508ff7
mov ecx, dword [ebp - 0x1bc]
cmp dword [ecx + 0x44], 0x23
jle 0x509665
jmp 0x509926
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb17b98
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
cmp ebx, 8
jle 0x50958d
lea eax, [ebx - 8]
lea esi, [ebp - 0x58]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x1bc]
mov eax, dword [edx + 0x48]
add eax, 0x24
lea eax, [edi + eax]
mov dword [esp], eax
call fcn.00521b70
test eax, eax
jne 0x509efc
cmp byte [ebp - 0x4d], 0xdd
je 0x50ac68
mov dword [ebp - 0x178], 0
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x174]
shr eax, 3
mov dword [edi + 0x2c], eax
movzx eax, byte [ebp - 0x4d]
cmp al, 0x6b
je 0x50ab70
cmp al, 0x69
je 0x50ab70
cmp al, 0xe1
je 0x50af30
cmp word [ebp - 0x3c], 0
nop
je 0x50aed5
mov eax, dword [ebp - 0x38]
movzx eax, byte [eax]
shr al, 3
cmp al, 0x1d
je 0x50b3cd
mov eax, dword [ebp - 0x178]
test eax, eax
jne 0x50b394
mov esi, dword [ebp - 0x174]
movzx eax, word [ebp - 0x3c]
mov dword [esi + 0xa8], eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, dword [esi + 0xa8]
mov dword [esi + 0xa4], eax
mov ecx, dword [ebp - 0x38]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
lea esi, [ebp - 0x58]
mov dword [esp], esi
call fcn.00521ab0
jmp 0x50958d
mov ebx, dword [edi + 0x48]
mov byte [esi + 4], 0x76
cmp dword [edi + 0x44], 0x69
jle 0x507de6
mov dword [esi + 8], 1
lea ecx, [ebx + 0x2a]
movzx edx, byte [ebx + 0x2a]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x2e]
shl eax, 0x10
or edx, eax
mov dword [esi + 0xc], edx
movzx edx, byte [ebx + 0x2e]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x32]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x10], edx
movzx edx, byte [ebx + 0x32]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x36]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x14], edx
movzx edx, byte [ebx + 0x36]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x3a]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x18], edx
movzx edx, byte [ebx + 0x3a]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x3e]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x1c], edx
movzx edx, byte [ebx + 0x3e]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x42]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x20], edx
movzx edx, byte [ebx + 0x42]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x46]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x24], edx
movzx edx, byte [ebx + 0x46]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x4a]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x28], edx
movzx edx, byte [ebx + 0x4a]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x4e]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x2c], edx
movzx edx, byte [ebx + 0x4e]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x52]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x30], edx
movzx edx, byte [ebx + 0x52]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x56]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x34], edx
movzx edx, byte [ebx + 0x56]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x5a]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x38], edx
movzx edx, byte [ebx + 0x5a]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x5e]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x3c], edx
movzx edx, byte [ebx + 0x5e]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x62]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x40], edx
movzx edx, byte [ebx + 0x62]
movzx eax, byte [ecx + 3]
shl edx, 0x18
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
movzx eax, byte [ecx + 1]
lea ecx, [ebx + 0x66]
shl eax, 0x10
or edx, eax
mov dword [esi + 0x44], edx
movzx eax, byte [ebx + 0x66]
movzx edx, byte [ecx + 3]
shl eax, 0x18
or edx, eax
movzx eax, byte [ecx + 1]
shl eax, 0x10
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
or edx, eax
mov dword [esi + 0x48], edx
jmp 0x507de6
mov dword [esp + 0x1c], ebx
movzx eax, byte [esi + edi + 0x23]
mov dword [esp + 0x18], eax
movzx eax, byte [esi + edi + 0x22]
mov dword [esp + 0x14], eax
movzx eax, byte [esi + edi + 0x21]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1a0]
mov dword [esp + 8], 0xb17c64
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
cmp ebx, 0xe
jle 0x50958d
mov ecx, dword [ebp - 0x1bc]
mov edx, dword [ecx + 0x48]
movzx eax, byte [edx + edi + 0x28]
mov dword [esp + 0x1c], eax
movzx eax, byte [edx + edi + 0x27]
mov dword [esp + 0x18], eax
movzx eax, byte [edx + edi + 0x26]
mov dword [esp + 0x14], eax
movzx eax, byte [edx + edi + 0x25]
mov dword [esp + 0x10], eax
movzx eax, byte [edx + edi + 0x24]
mov dword [esp + 8], 0xb17c90
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov ebx, dword [ebp - 0x1bc]
mov edx, dword [ebx + 0x48]
movzx eax, byte [edx + edi + 0x2a]
mov dword [esp + 0x10], eax
movzx eax, byte [edx + edi + 0x29]
mov dword [esp + 8], 0xb17cb3
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov edx, dword [ebx + 0x48]
movzx eax, byte [edx + edi + 0x2c]
mov dword [esp + 0x10], eax
movzx eax, byte [edx + edi + 0x2b]
mov dword [esp + 8], 0xb17cd0
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
jmp 0x50958d
mov ecx, dword [edi + 0x48]
sub edx, 0x4e
lea eax, [esi + 0x56]
mov dword [esp + 8], edx
mov dword [esp], eax
add ecx, 0x4e
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov ebx, dword [edi + 0x48]
mov edx, dword [edi + 0x44]
jmp 0x508f5f
movzx edx, byte [ecx + 0x28]
movzx eax, byte [ecx + 0x29]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ecx + 0x2b]
or edx, eax
movzx eax, byte [ecx + 0x2a]
shl eax, 8
or edx, eax
mov dword [esp + 0x18], edx
movzx edx, byte [ecx + 0x24]
movzx eax, byte [ecx + 0x25]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ecx + 0x27]
or edx, eax
movzx eax, byte [ecx + 0x26]
shl eax, 8
or edx, eax
mov dword [esp + 0x14], edx
movzx edx, byte [ecx + 0x20]
movzx eax, byte [ecx + 0x21]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ecx + 0x23]
or edx, eax
movzx eax, byte [ecx + 0x22]
shl eax, 8
or edx, eax
mov dword [esp + 0x10], edx
movzx edx, byte [ecx + 0x1c]
movzx eax, byte [ecx + 0x1d]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [ecx + 0x1f]
or edx, eax
movzx eax, byte [ecx + 0x1e]
mov dword [esp + 8], 0xb17a94
mov dword [esp + 4], 6
mov dword [esp], 7
shl eax, 8
or edx, eax
mov dword [esp + 0xc], edx
call fcn.00405fb0
cmp dword [esi + 0x44], 0x33
jle 0x50948d
mov ecx, dword [esi + 0x48]
movzx edi, byte [ecx + 0x2c]
movzx eax, byte [ecx + 0x2d]
movzx edx, byte [ecx + 0x30]
shl edi, 0x18
shl eax, 0x10
or edi, eax
movzx eax, byte [ecx + 0x2f]
shl edx, 0x18
or edi, eax
movzx eax, byte [ecx + 0x2e]
shl eax, 8
or edi, eax
movzx eax, byte [ecx + 0x31]
shl eax, 0x10
or edx, eax
movzx eax, byte [ecx + 0x33]
or edx, eax
movzx eax, byte [ecx + 0x32]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0xb17ae0
mov dword [esp + 4], 6
shl eax, 8
or edx, eax
mov dword [esp + 0x10], edx
mov dword [esp], 7
call fcn.00405fb0
cmp edi, 3
jle 0x50948d
mov eax, dword [ebp - 0x1bc]
mov esi, dword [eax + 0x48]
lea edx, [esi + 0x34]
mov dword [ebp - 0x1a4], edx
movzx ecx, byte [esi + 0x34]
movzx eax, byte [esi + 0x35]
shl ecx, 0x18
shl eax, 0x10
or ecx, eax
movzx eax, byte [esi + 0x37]
or ecx, eax
movzx eax, byte [esi + 0x36]
shl eax, 8
or ecx, eax
cmp ecx, 0xb
jle 0x50a42e
movzx edx, byte [esi + 0x38]
movzx eax, byte [esi + 0x39]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [esi + 0x3b]
or edx, eax
movzx eax, byte [esi + 0x3a]
shl eax, 8
or edx, eax
cmp edx, 0x66726d61
je 0x50abe1
cmp edi, 8
jle 0x50948d
mov ebx, dword [ebp - 0x1bc]
lea eax, [edi + 0x2c]
cmp eax, dword [ebx + 0x44]
jg 0x50948d
mov esi, dword [ebp - 0x174]
lea eax, [edi - 8]
mov dword [esi + 0xa8], eax
mov eax, dword [ebx + 0x48]
add eax, 0x34
mov dword [esi + 0xa4], eax
jmp 0x50948d
mov dword [esp], 0x28
call sub.msvcrt.dll_malloc
mov ecx, 0xa
cld
mov edi, eax
mov eax, dword [ebp - 0x150]
mov dword [eax + 0x14c], edi
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [ebp - 0x150]
mov ecx, dword [edx + 0x14c]
mov esi, edx
mov dword [ecx], 0x28
jmp 0x509296
mov ecx, dword [ebx + 0x40]
movzx eax, byte [ecx + 0x50]
movzx edx, byte [ecx + 0x51]
shl eax, 8
or eax, edx
mov dword [esp + 0x10], eax
movzx eax, byte [ecx + 0x4c]
movzx edx, byte [ecx + 0x4d]
mov dword [esp + 8], 0xb182a7
mov dword [esp + 4], 6
shl eax, 8
or eax, edx
mov dword [esp + 0xc], eax
mov dword [esp], 7
call fcn.00405fb0
jmp 0x50930d
mov eax, dword [eax]
xor edx, edx
push edx
push eax
fild qword [esp]
add esp, 8
fild dword [edi + 0x424]
fdivp st(1)
fst dword [ecx + 0x14]
fstp qword [esp + 0xc]
mov dword [esp + 8], 0xb17988
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
jmp 0x508493
fld1
jmp 0x5090e9
mov eax, dword [eax]
xor edx, edx
push edx
push eax
fild qword [esp]
add esp, 8
fild dword [esi + 0x424]
fdivp st(1)
fst dword [ecx + 0x18]
fstp qword [esp + 0xc]
mov dword [esp + 8], 0xb17d58
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
jmp 0x508b63
mov ecx, dword [ebp - 0x1bc]
mov ebx, dword [ebp - 0x14c]
mov edx, dword [ecx + 0x48]
movzx eax, byte [edx + ebx + 0xd]
mov dword [esp + 0x20], eax
movzx eax, byte [edx + ebx + 0xc]
mov dword [esp + 0x1c], eax
movzx eax, byte [edx + ebx + 0xb]
mov dword [esp + 0x18], eax
movzx eax, byte [edx + ebx + 0xa]
mov dword [esp + 0x14], eax
movzx eax, byte [edx + ebx + 9]
mov dword [esp + 0x10], eax
movzx eax, byte [edx + ebx + 8]
mov dword [esp + 8], 0xb180a8
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
jmp 0x509de1
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x14c]
mov eax, dword [edx + 0x48]
movzx eax, byte [ecx + eax + 8]
mov dword [esp + 8], 0xb17f12
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov ebx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x14c]
add eax, dword [ebx + 0x48]
cmp byte [eax + 8], 1
je 0x50a645
movzx eax, byte [eax + 9]
mov dword [esp + 8], 0xb17f2c
mov dword [esp + 4], 1
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov edi, dword [ebp - 0x1bc]
mov edx, dword [ebp - 0x14c]
mov eax, dword [edi + 0x48]
movzx eax, byte [edx + eax + 9]
mov dword [esp + 8], 0xb17f5f
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov ecx, dword [ebp - 0x14c]
mov eax, dword [edi + 0x48]
movzx eax, byte [ecx + eax + 0xa]
mov dword [esp + 8], 0xb17f78
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov ebx, dword [ebp - 0x14c]
mov eax, dword [edi + 0x48]
movzx eax, byte [ebx + eax + 0xb]
mov dword [esp + 8], 0xb17f9d
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov eax, dword [edi + 0x48]
movzx eax, byte [ebx + eax + 0xc]
mov dword [esp + 8], 0xb17fb4
mov dword [esp + 4], 6
mov dword [esp], 7
and eax, 3
add eax, 1
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov eax, dword [edi + 0x48]
movzx eax, byte [ebx + eax + 0xd]
and eax, 0x1f
mov dword [ebp - 0x148], eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xb17fd4
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov ebx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x148]
add ebx, 0xe
test eax, eax
je 0x50abaf
xor edi, edi
mov edx, dword [ebp - 0x1bc]
mov eax, ebx
add eax, dword [edx + 0x48]
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
mov dword [esp + 0xc], edi
add edi, 1
mov dword [esp + 8], 0xb18004
mov dword [esp + 4], 6
shl eax, 8
or edx, eax
mov dword [esp + 0x10], edx
mov dword [esp], 7
call fcn.00405fb0
mov ecx, dword [ebp - 0x1bc]
mov eax, ebx
add eax, dword [ecx + 0x48]
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or edx, eax
cmp edi, dword [ebp - 0x148]
lea ebx, [ebx + edx + 2]
jne 0x50a74d
mov eax, dword [ecx + 0x48]
xor edi, edi
movzx eax, byte [eax + ebx]
add ebx, 1
mov dword [esp + 8], 0xb18028
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov edx, dword [ebp - 0x1bc]
mov eax, ebx
add eax, dword [edx + 0x48]
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
mov dword [esp + 0xc], edi
add edi, 1
mov dword [esp + 8], 0xb18054
mov dword [esp + 4], 6
shl eax, 8
or edx, eax
mov dword [esp + 0x10], edx
mov dword [esp], 7
call fcn.00405fb0
mov ecx, dword [ebp - 0x1bc]
mov eax, ebx
add eax, dword [ecx + 0x48]
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or edx, eax
cmp edi, dword [ebp - 0x148]
lea ebx, [ebx + edx + 2]
jne 0x50a7da
mov ebx, dword [ebp - 0x1bc]
lea eax, [esi - 8]
mov dword [ebx + 0x50], eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov esi, dword [ebx + 0x48]
add dword [ebp - 0x14c], esi
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebx + 0x50]
add ecx, 8
mov dword [ebx + 0x4c], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edi, dword [ebp - 0x1bc]
mov ebx, dword [edi + 0x48]
jmp 0x509000
mov ebx, 0x428
mov esi, 0x428
mov dword [ebp - 0x158], 0x100
jmp 0x509a69
mov dword [esp + 8], 0xb17920
mov dword [esp + 4], 2
mov dword [esp], 7
call fcn.00405fb0
jmp 0x506e14
lea eax, [esi - 8]
lea ebx, [ebp - 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x1bc]
mov esi, dword [esi + 0x48]
add dword [ebp - 0x14c], esi
mov eax, dword [ebp - 0x14c]
add eax, 8
mov dword [esp], eax
call fcn.00521b70
test eax, eax
jne 0x50a947
movzx edx, byte [ebp - 0x4d]
lea eax, [edx - 0x60]
cmp al, 5
ja 0x50ab4f
mov edi, dword [ebp - 0x150]
mov dword [edi + 0xc], 0x3267706d
mov edx, dword [ebp - 0x1bc]
movzx eax, word [ebp - 0x3c]
mov dword [edx + 0x50], eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov ecx, dword [ebp - 0x1bc]
mov ebx, dword [ebp - 0x1bc]
mov edx, dword [ebx + 0x50]
mov dword [ecx + 0x4c], eax
mov ecx, dword [ebp - 0x38]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
lea esi, [ebp - 0x58]
mov dword [esp], esi
call fcn.00521ab0
mov edi, dword [ebp - 0x1bc]
mov ebx, dword [edi + 0x48]
jmp 0x509000
mov ecx, dword [ebp - 0x1bc]
mov edx, ecx
mov dword [ecx + 0x34], 1
jmp 0x50857e
mov edi, dword [ebp - 0x1bc]
mov edx, edi
mov dword [edi + 0x34], 6
jmp 0x50857e
mov dword [esp + 8], 0xb181f4
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
cmp dword [ebp - 0x158], 4
je 0x50b2a4
cmp dword [ebp - 0x158], 0x10
je 0x50b309
cmp dword [ebp - 0x158], 0x100
je 0x50ab86
mov edi, dword [ebp - 0x150]
mov ecx, dword [edi + 0x14c]
mov esi, edi
jmp 0x509296
mov dword [esp + 8], 0xb18215
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
cmp edi, dword [ebp - 0x15c]
jg 0x50b2ca
cmp word [ebp - 0x160], 0
js 0x50b241
mov dword [ebp - 0x9c], 0x56
jmp 0x50aa5f
mov ecx, dword [ebp - 0x158]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0xb18230
mov dword [esp + 4], 6
mov dword [esp + 0x10], ecx
mov dword [esp], 7
call fcn.00405fb0
add edi, 1
cmp edi, dword [ebp - 0x15c]
jg 0x50aabc
add dword [ebp - 0x9c], 8
mov eax, dword [ebp - 0x1bc]
mov edx, dword [ebp - 0x9c]
mov ebx, dword [eax + 0x48]
lea eax, [ebx + edx]
movzx edx, byte [eax]
movzx eax, byte [eax + 1]
shl edx, 8
or edx, eax
cmp dword [ebp - 0x158], edx
jl 0x50aa23
lea ecx, [edx*4]
mov edx, dword [ebp - 0x9c]
add edx, 2
movzx eax, byte [ebx + edx]
mov byte [esi + ecx + 2], al
mov ebx, dword [ebp - 0x1bc]
mov eax, dword [ebx + 0x48]
movzx eax, byte [edx + eax + 2]
mov byte [esi + ecx + 1], al
mov eax, dword [ebx + 0x48]
movzx eax, byte [edx + eax + 4]
mov byte [esi + ecx], al
jmp 0x50aa4d
mov edx, dword [ebp - 0x150]
mov ecx, dword [edx + 0x14c]
mov esi, edx
jmp 0x509296
mov edx, dword [ebp - 0x174]
mov dword [edx + 0x1c], 0xbb80
jmp 0x50943a
mov eax, dword [ebp - 0x174]
mov dword [eax + 0x1c], 0xac44
jmp 0x50943a
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xb183cb
mov dword [esp + 4], 1
mov dword [esp], 7
call fcn.00405fb0
jmp 0x506e14
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xb183e8
mov dword [esp + 4], 1
mov dword [esp], 7
call fcn.00405fb0
jmp 0x506e14
mov edi, dword [ebp - 0x174]
mov dword [edi + 0x1c], 0x7d00
jmp 0x50943a
cmp dl, 0x6a
jne 0x50a90d
mov eax, dword [ebp - 0x150]
mov dword [eax + 0xc], 0x3167706d
jmp 0x50a90d
mov eax, dword [ebp - 0x174]
mov dword [eax + 0xc], 0x55
movzx eax, byte [ebp - 0x4d]
jmp 0x509e91
mov dword [esp], esi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0xad9050
call sub.msvcrt.dll_memcpy
mov esi, dword [ebp - 0x150]
mov ecx, dword [esi + 0x14c]
jmp 0x509296
mov edx, dword [ebp - 0x1bc]
mov eax, dword [edx + 0x48]
movzx eax, byte [eax + ebx]
mov dword [esp + 8], 0xb18028
mov dword [esp + 4], 6
mov dword [esp], 7
mov dword [esp + 0xc], eax
call fcn.00405fb0
jmp 0x50a83b
movzx ebx, byte [esi + 0x3c]
movzx eax, byte [esi + 0x3d]
shl ebx, 0x18
shl eax, 0x10
or ebx, eax
movzx eax, byte [esi + 0x3f]
or ebx, eax
movzx eax, byte [esi + 0x3e]
shl eax, 8
or ebx, eax
cmp ebx, 0x666c3634
je 0x50ae60
jg 0x50ae4c
cmp ebx, 0x616c6163
je 0x50acca
cmp ebx, 0x666c3332
je 0x50ae60
cmp edi, 8
lea esi, [esi]
jle 0x50948d
mov edx, dword [ebp - 0x1bc]
lea eax, [edi + 0x2c]
cmp eax, dword [edx + 0x44]
jg 0x50948d
mov ecx, dword [ebp - 0x174]
lea eax, [edi - 8]
mov dword [ecx + 0xa8], eax
mov eax, dword [edx + 0x48]
add eax, 0x34
mov dword [ecx + 0xa4], eax
jmp 0x50948d
cmp byte [ebp - 0x4c], 0x15
jne 0x509e64
mov ecx, dword [ebp - 0x174]
cmp dword [ecx + 0xc], 0x6134706d
jne 0x509e64
movzx ecx, word [ebp - 0x3c]
cmp cx, 8
jbe 0x509e64
mov edi, dword [ebp - 0x38]
cmp byte [edi], 0
jne 0x50acae
lea ebx, [edi + 1]
mov dword [ebp - 0x19c], ebx
cmp byte [edi + 1], 0x1e
je 0x50ad8c
mov dword [ebp - 0x178], 0
mov esi, dword [ebp - 0x174]
mov dword [esi + 0xc], 0x73627276
jmp 0x509e6e
lea eax, [ecx + 0x24]
cmp edi, eax
jl 0x50948d
add ecx, dword [ebp - 0x1a4]
movzx eax, byte [ecx]
movzx edx, byte [ecx + 3]
shl eax, 0x18
or edx, eax
movzx eax, byte [ecx + 1]
shl eax, 0x10
or edx, eax
movzx eax, byte [ecx + 2]
mov ecx, dword [ebp - 0x174]
shl eax, 8
or edx, eax
mov dword [ecx + 0xa8], edx
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0xb17b06
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov ebx, dword [ebp - 0x174]
mov eax, dword [ebx + 0xa8]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov esi, dword [ebp - 0x1bc]
mov edi, dword [ebp - 0x174]
mov dword [ebx + 0xa4], eax
mov ebx, dword [esi + 0x48]
movzx ecx, byte [ebx + 0x34]
movzx edx, byte [ebx + 0x35]
shl ecx, 0x18
shl edx, 0x10
or ecx, edx
movzx edx, byte [ebx + 0x37]
or ecx, edx
movzx edx, byte [ebx + 0x36]
shl edx, 8
or ecx, edx
mov edx, dword [edi + 0xa8]
lea ebx, [ebx + ecx + 0x34]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [esp + 8], edx
call sub.msvcrt.dll_memcpy
jmp 0x50948d
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 0
mov esi, dword [ebp - 0x170]
mov ebx, dword [ebp - 0x19c]
movzx edx, byte [edi + esi]
movzx eax, byte [ebx + esi]
mov esi, dword [ebp - 0x168]
shl edx, 8
or eax, edx
mov word [ebp + esi*2 - 0x1e], ax
mov esi, dword [ebp - 0x170]
movzx ebx, ax
add esi, 2
lea eax, [ebx + esi]
mov dword [ebp - 0x170], eax
movzx eax, cx
cmp dword [ebp - 0x170], eax
jg 0x50b0f9
mov dword [esp], ebx
call sub.msvcrt.dll_malloc
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x1d8], ecx
mov edx, eax
mov eax, dword [ebp - 0x168]
test edx, edx
mov dword [ecx + eax*4], edx
je 0x50acae
lea eax, [edi + esi]
add dword [ebp - 0x16c], ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
add dword [ebp - 0x168], 1
cmp dword [ebp - 0x168], 3
je 0x50af64
movzx ecx, word [ebp - 0x3c]
jmp 0x50adaa
cmp ebx, 0x696e3234
je 0x50ae60
cmp ebx, 0x696e3332
jne 0x50ac2a
cmp edi, 0x15
jle 0x50948d
movzx edx, byte [esi + 0x44]
movzx eax, byte [esi + 0x45]
shl edx, 0x18
shl eax, 0x10
or edx, eax
movzx eax, byte [esi + 0x47]
or edx, eax
movzx eax, byte [esi + 0x46]
shl eax, 8
or edx, eax
cmp edx, 0x656e6461
jne 0x50948d
movzx eax, byte [esi + 0x48]
movzx edx, byte [esi + 0x49]
shl eax, 8
or eax, edx
je 0x50948d
mov eax, dword [ebp - 0x174]
mov dword [eax + 0xc], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb17b24
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
jmp 0x50948d
lea edi, [ebp - 0x58]
mov dword [esp], edi
call fcn.00521ab0
mov eax, dword [ebp - 0x1bc]
mov dword [esp + 8], 0xb17c56
mov dword [esp + 4], 6
mov dword [esp], 7
add eax, 0x30
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov edi, dword [ebp - 0x178]
mov eax, 0x12
test edi, edi
je 0x5095c5
mov edi, dword [ebp - 0x174]
mov eax, dword [edi + 0xa8]
add eax, 0x12
jmp 0x5095c5
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x1bc]
mov dword [edx + 0xc], 0x706c6351
mov dword [edx + 0x24], 1
mov dword [ecx + 0x34], 1
mov dword [edx + 0x20], 1
mov dword [ecx + 0x38], 1
jmp 0x509e99
mov eax, 0x80808081
mov ecx, dword [ebp - 0x16c]
mov edi, 2
imul dword [ebp - 0x16c]
mov eax, dword [ebp - 0x16c]
add edx, dword [ebp - 0x16c]
mov ebx, dword [ebp - 0x174]
sar eax, 0x1f
sar edx, 7
sub edx, eax
lea eax, [ecx + edx + 0x40]
mov dword [ebx + 0xa8], eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, 2
mov dword [ebp - 0x198], eax
mov dword [ebx + 0xa4], eax
mov byte [eax], 2
movzx eax, word [ebp - 0x1e]
mov esi, dword [ebp - 0x198]
add esi, 1
cmp eax, 0xfe
jbe 0x50b007
mov ecx, eax
mov edi, 0x80808081
lea eax, [eax - 0xff]
xor ebx, ebx
mul edi
shr edx, 7
lea eax, [edx + 1]
mov edi, dword [ebp - 0x198]
add esi, 1
sub ecx, 0xff
mov byte [ebx + edi + 1], 0xff
add ebx, 1
cmp ebx, eax
jne 0x50afe5
lea edi, [edx + 3]
mov eax, ecx
mov edx, edi
mov byte [esi], al
movzx eax, word [ebp - 0x1c]
xor esi, esi
mov ebx, dword [ebp - 0x198]
add ebx, edx
cmp eax, 0xfe
jbe 0x50b048
lea edx, [eax - 0xff]
mov ecx, eax
mov eax, 0x80808081
mul edx
shr edx, 7
lea eax, [edx + 1]
add esi, 1
sub ecx, 0xff
mov byte [ebx], 0xff
add ebx, 1
cmp esi, eax
jne 0x50b033
mov eax, ecx
mov byte [ebx], al
mov edx, dword [ebp - 0x198]
lea esi, [edi + esi + 1]
movzx ebx, word [ebp - 0x1e]
mov edi, 2
mov eax, dword [ebp - 0x2c]
add edx, esi
mov dword [esp + 8], ebx
lea esi, [ebx + esi]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x198]
movzx ebx, word [ebp + edi*2 - 0x20]
mov edx, dword [ecx + edi*4 - 4]
add edi, 1
add eax, esi
mov dword [esp + 8], ebx
add esi, ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
cmp edi, 4
jne 0x50b075
mov ebx, dword [ebp - 0x174]
mov dword [ebx + 0xa8], esi
mov dword [esp + 4], esi
mov eax, dword [ebx + 0xa4]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov dword [ebx + 0xa4], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb17c30
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov dword [ebp - 0x178], 1
jmp 0x50acb8
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebx
mov edx, dword [ebp - 0x168]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xb17bd8
mov dword [esp + 4], 0
mov dword [esp + 0x10], edx
mov dword [esp], 7
call fcn.00405fb0
mov dword [ebp - 0x178], 0
jmp 0x50acb8
mov dword [esp], esi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0xad8bf0
call sub.msvcrt.dll_memcpy
mov esi, dword [ebp - 0x1bc]
cmp dword [esi + 0x30], 0x64697663
jne 0x50ab9e
mov dword [esp + 8], 0xb181a8
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.00405fb0
mov edi, dword [ebp - 0x1c4]
mov eax, 1
not byte [edi + 0x28]
mov edx, dword [ebp - 0x1c4]
not byte [eax + edx + 0x28]
add eax, 1
cmp eax, 0x400
jne 0x50b18f
jmp 0x509bbe
mov eax, dword [0xad8bb0]
mov edx, dword [ebp - 0x1c4]
mov dword [edx + 0x28], eax
mov eax, dword [0xad8bb4]
mov dword [esi + 4], eax
mov eax, dword [0xad8bb8]
mov dword [esi + 8], eax
mov eax, dword [0xad8bbc]
mov dword [esi + 0xc], eax
mov eax, dword [0xad8bc0]
mov dword [esi + 0x10], eax
mov eax, dword [0xad8bc4]
mov dword [esi + 0x14], eax
mov eax, dword [0xad8bc8]
mov dword [esi + 0x18], eax
mov eax, dword [0xad8bcc]
mov dword [esi + 0x1c], eax
mov eax, dword [0xad8bd0]
mov dword [esi + 0x20], eax
mov eax, dword [0xad8bd4]
mov dword [esi + 0x24], eax
mov eax, dword [0xad8bd8]
mov dword [esi + 0x28], eax
mov eax, dword [0xad8bdc]
mov dword [esi + 0x2c], eax
mov eax, dword [0xad8be0]
mov dword [esi + 0x30], eax
mov eax, dword [0xad8be4]
mov dword [esi + 0x34], eax
mov eax, dword [0xad8be8]
mov dword [esi + 0x38], eax
mov eax, dword [0xad8bec]
mov dword [esi + 0x3c], eax
mov ebx, dword [ebp - 0x150]
mov ecx, dword [ebx + 0x14c]
mov esi, ebx
jmp 0x509296
mov eax, dword [ebp - 0x1c4]
mov ebx, edi
lea esi, [eax + edi*4]
mov edi, 0x56
mov edx, dword [ebp - 0x1bc]
cmp dword [ebp - 0x158], ebx
mov eax, dword [edx + 0x48]
jl 0x50b2dd
test ebx, ebx
js 0x50b2dd
movzx eax, byte [eax + edi + 2]
lea edx, [edi + 2]
mov byte [esi + 0x2a], al
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [ecx + 0x48]
movzx eax, byte [edx + eax + 2]
mov byte [esi + 0x29], al
mov eax, dword [ecx + 0x48]
movzx eax, byte [edx + eax + 4]
mov byte [esi + 0x28], al
add ebx, 1
add esi, 4
cmp dword [ebp - 0x15c], ebx
jl 0x509bbe
add edi, 8
jmp 0x50b251
mov eax, dword [0xad8ff0]
mov edi, dword [ebp - 0x1c4]
mov dword [edi + 0x28], eax
mov eax, dword [0xad8ff4]
mov dword [esi + 4], eax
mov eax, dword [0xad8ff8]
mov dword [esi + 8], eax
mov eax, dword [0xad8ffc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x150]
mov ecx, dword [eax + 0x14c]
mov esi, eax
jmp 0x509296
mov eax, dword [ebp - 0x158]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xb18230
mov dword [esp + 4], 6
mov dword [esp + 0x10], eax
mov dword [esp], 7
call fcn.00405fb0
jmp 0x50b28d
mov eax, dword [0xad9010]
mov edx, dword [ebp - 0x1c4]
mov dword [edx + 0x28], eax
mov eax, dword [0xad9014]
mov dword [esi + 4], eax
mov eax, dword [0xad9018]
mov dword [esi + 8], eax
mov eax, dword [0xad901c]
mov dword [esi + 0xc], eax
mov eax, dword [0xad9020]
mov dword [esi + 0x10], eax
mov eax, dword [0xad9024]
mov dword [esi + 0x14], eax
mov eax, dword [0xad9028]
mov dword [esi + 0x18], eax
mov eax, dword [0xad902c]
mov dword [esi + 0x1c], eax
mov eax, dword [0xad9030]
mov dword [esi + 0x20], eax
mov eax, dword [0xad9034]
mov dword [esi + 0x24], eax
mov eax, dword [0xad9038]
mov dword [esi + 0x28], eax
mov eax, dword [0xad903c]
mov dword [esi + 0x2c], eax
mov eax, dword [0xad9040]
mov dword [esi + 0x30], eax
mov eax, dword [0xad9044]
mov dword [esi + 0x34], eax
mov eax, dword [0xad9048]
mov dword [esi + 0x38], eax
mov eax, dword [0xad904c]
mov dword [esi + 0x3c], eax
jmp 0x509bbe
lea edi, [ebp - 0x58]
mov dword [esp], edi
call fcn.00521ab0
mov eax, dword [ebp - 0x1bc]
mov dword [esp + 8], 0xb17c56
mov dword [esp + 4], 6
mov dword [esp], 7
add eax, 0x30
mov dword [esp + 0xc], eax
call fcn.00405fb0
jmp 0x50af1c
mov ebx, dword [ebp - 0x174]
mov dword [ebx + 0xc], 0x1d61346d
jmp 0x509eb7