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

Disassembly:
sub esp, 0x174
mov eax, dword [0x78e580]
xor eax, esp
mov dword [esp + 0x170], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x194]
mov edx, dword [esp + 0x18c]
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x1ac]
mov ebx, dword [esp + 0x188]
mov dword [esp + 0x24], eax
xor ebp, ebp
mov eax, dword [eax + 0xc]
mov esi, dword [esp + 0x190]
mov dword [esp + 0x94], eax
mov dword [esp + 0x60], ecx
xor ecx, ecx
mov dword [esp + 0x130], edx
mov dword [esp + 0x9c], ecx
mov ecx, dword [esi]
mov dword [esp + 0x134], esi
mov esi, dword [edx]
xor edx, edx
mov dword [esp + 0x104], ebx
mov ebx, dword [ebx]
mov eax, ebx
shr eax, 0x13
mov dword [esp + 0x54], edx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xe4], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0xbc], edx
inc edx
and eax, edx
mov dword [esp + 0x80], ebx
shr dword [esp + 0x80], 3
mov dword [esp + 0x78], eax
mov eax, ebx
shr eax, 0x11
and eax, edx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0xb8], eax
mov eax, ebx
shr eax, 0x12
and eax, edx
mov dword [esp + 0x98], ebp
mov dword [esp + 0xe8], eax
xor eax, edx
xor edx, edx
mov dword [esp + 0xec], eax
or edi, 0xffffffff
mov dword [esp + 0x20], ebx
and dword [esp + 0x80], 1
mov eax, edx
mov ebp, edi
mov dword [esp + 0xc8], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xcc], esi
mov dword [esp + 0x90], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xc4], 0x10000
mov dword [esp + 0xf0], 0x800f0000
mov dword [esp + 0xf4], 0x80070000
mov dword [esp + 0xd4], closesocket
mov dword [esp + 0xf8], 0x800a0000
mov dword [esp + 0xfc], 0x800e0000
mov dword [esp + 0x118], 0xa2
mov dword [esp + 0xa8], 0xd
mov dword [esp + 0x64], 0xfffffffe
mov dword [esp + 0xdc], 0xe
mov dword [esp + 0x100], 0x80170000
mov dword [esp + 0xd8], 0x80140000
mov dword [esp + 0x7c], 3
mov dword [esp + 0xac], 0xffff
mov dword [esp + 0x108], 0x802a0000
mov dword [esp + 0xc0], 0x80
mov dword [esp + 0x110], 0x80390000
mov dword [esp + 0x114], 0x803b0000
mov dword [esp + 0x34], ebp
mov dword [esp + 0x58], eax
mov eax, dword [ecx]
mov ebp, eax
and ebp, 0xffff0000
mov dword [esp + 0x4c], ebx
cmp dword [esp + 0x60], 0
mov dword [esp + 0x70], edx
mov dword [esp + 0x2c], ebp
movzx ebx, ax
je 0x47e240
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x28]
add ecx, dword [eax + 0x14]
lea eax, [ecx - 0x64]
cmp esi, eax
ja 0x480bac
mov eax, dword [esp + 0xd0]
cmp esi, eax
cmovae eax, esi
mov esi, eax
mov dword [esp + 0x10], esi
cmp ebp, 0x80340000
jb 0x47e1ed
cmp ebp, 0x803f0000
jbe 0x47e235
mov eax, dword [esp + 0x60]
mov ecx, esi
sub ecx, dword [esp + 0xcc]
mov edx, dword [eax]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jb 0x480c9c
sub edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x60]
lea eax, [edx + esi]
mov dword [ecx], eax
cmp eax, 0x10000
ja 0x480c9c
mov esi, dword [esp + 0xcc]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xd0], esi
mov dword [esp + 0x70], esi
cmp ebp, 0x80340000
jb 0x47e254
cmp ebp, 0x803f0000
jbe 0x47e27e
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x54], esi
test eax, eax
je 0x47e282
mov ebp, dword [esp + 0xc8]
cmp dword [esp + 0xe4], 0
push 1
pop esi
cmove ebp, esi
mov dword [esp + 0xc8], ebp
jmp 0x47e282
mov eax, dword [esp + 0x5c]
xor ebp, ebp
cmp dword [esp + 0x2c], 0x80220000
mov dword [esp + 0x5c], ebp
mov esi, ebp
ja 0x47f592
mov edx, dword [esp + 0x2c]
cmp edx, 0x80220000
je 0x47f57b
mov eax, dword [esp + 0xf0]
cmp edx, eax
ja 0x47ee4c
mov esi, edx
cmp esi, eax
je 0x47ee42
cmp esi, dword [esp + 0xf4]
ja 0x47e4c7
je 0x47e3d3
cmp esi, 0x80000000
je 0x480c17
cmp esi, 0x80010000
je 0x480c17
cmp esi, 0x80020000
je 0x47e3c9
cmp esi, 0x80030000
je 0x47e390
cmp esi, 0x80040000
je 0x47f211
cmp esi, 0x80050000
je 0x47e384
cmp esi, 0x80060000
jne 0x47fc67
mov ebx, dword [esp + 0x10]
mov byte [ebx], 0x76
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shr eax, 8
mov byte [ebx + 1], al
mov eax, dword [esp + 0x14]
mov al, byte [eax + 4]
mov byte [ebx + 2], al
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
shr eax, 8
mov byte [ebx + 3], al
mov eax, dword [esp + 0x14]
mov al, byte [eax + 8]
mov byte [ebx + 4], al
mov eax, dword [esp + 0x14]
mov al, byte [eax + 0xc]
mov byte [ebx + 5], al
mov ecx, dword [esp + 0x14]
movzx eax, byte [0x56829e]
add ecx, 0xc
add ebx, eax
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
jmp 0x4804c9
add ecx, 4
mov dword [esp + 0x14], ecx
jmp 0x47fc73
mov ebp, dword [esp + 0x24]
cmp ebx, 0xa
jae 0x47e3a1
lea ecx, [ebp + 0x2c]
lea ecx, [ecx + ebx*4]
jmp 0x47e3a8
add ecx, 4
mov dword [esp + 0x14], ecx
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
cmp ebx, dword [ebp + 0x74]
jbe 0x47f2d2
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 0x68]
mov dword [eax], 0x73
jmp 0x480cb2
mov eax, 0x84
jmp 0x47f580
mov edx, dword [esp + 0x60]
test edx, edx
je 0x47e3e8
mov eax, dword [ecx + 0xc]
add eax, 9
add dword [edx], eax
add ecx, 0x10
jmp 0x47e377
mov ebx, dword [esp + 0x10]
mov esi, dword [ecx + 0xc]
push 0x7d
pop edi
mov byte [ebx], 0x77
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shr eax, 8
mov byte [ebx + 1], al
mov eax, dword [esp + 0x14]
mov al, byte [eax + 4]
mov byte [ebx + 2], al
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
shr eax, 8
mov byte [ebx + 3], al
mov eax, dword [esp + 0x14]
mov al, byte [eax + 8]
mov byte [ebx + 4], al
mov eax, dword [esp + 0x14]
add eax, 0x10
mov dword [esp + 0x14], eax
mov ecx, dword [eax]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 0x1c]
add edx, ecx
lea ecx, [ebx + 0xa]
mov al, byte [edx]
inc edx
mov byte [ebx + 9], al
movzx eax, al
cmp eax, 0x7b
cmove eax, edi
xor ebp, ebp
mov dword [esp + 0x4c], eax
inc ebp
mov eax, dword [esp + 0x6c]
inc eax
sar eax, 8
mov byte [ebx + 7], al
mov al, byte [esp + 0x6c]
inc al
dec esi
mov byte [ebx + 8], al
cmp esi, ebp
jbe 0x47e4a4
mov edi, dword [esp + 0x4c]
mov bl, byte [edx]
movzx eax, bl
cmp eax, edi
jne 0x47e494
movzx eax, byte [edx + 1]
cmp eax, edi
jne 0x47e494
mov eax, dword [esp + 0x4c]
dec esi
mov edi, dword [esp + 0x4c]
push 2
mov byte [ecx], al
pop eax
jmp 0x47e498
mov byte [ecx], bl
mov eax, ebp
inc ecx
add edx, eax
dec esi
cmp esi, ebp
ja 0x47e473
mov ebx, dword [esp + 0x10]
xor eax, eax
mov byte [ecx], al
inc ecx
mov eax, ecx
mov dword [esp + 0x10], ecx
sub eax, ebx
sar eax, 8
mov byte [ebx + 5], al
mov al, cl
sub al, bl
mov byte [ebx + 6], al
mov ecx, dword [esp + 0x14]
jmp 0x47e377
cmp esi, 0x80080000
je 0x47ee1b
cmp esi, 0x80090000
je 0x47ede4
mov edx, dword [esp + 0xf8]
cmp esi, edx
je 0x47e50e
cmp esi, 0x800b0000
je 0x47e602
cmp esi, 0x800c0000
je 0x47e602
cmp esi, 0x800e0000
jne 0x47f5fd
mov ebx, dword [ecx + 4]
xor edi, edi
xor eax, eax
inc edi
cmp esi, 0x800e0000
mov dword [esp + 0x5c], edi
sete al
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xd4]
cmp ebx, eax
jae 0x47e697
lea eax, [ecx + 8]
cmp dword [eax], 0x800d0000
jne 0x47e690
mov dword [esp + 0x14], eax
cmp esi, edx
je 0x47fc78
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x1c]
cmp edi, 0xffffffff
mov dword [esp + 0x8c], ebp
cmove edi, dword [esp + 0x64]
cmp dword [esp + 0x78], 0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x84], esi
mov dword [esp + 0x40], edi
jne 0x47e59b
cmp dword [esp + 0xb8], 0
je 0x47e657
mov edx, dword [esp + 0x20]
test dl, 8
je 0x47e65e
mov eax, ebx
test eax, eax
jns 0x47e5b1
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x550a58]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x47e5cd
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x554e58]
imul eax, eax, 0xc
mov cl, byte [eax + 0x54c84b]
test cl, cl
je 0x47e65b
mov eax, dword [esp + 0x10]
mov word [eax], 0xa0f
lea edx, [eax + 3]
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x14]
mov esi, edx
mov dword [esp + 0x10], edx
jmp 0x4804cd
mov edx, dword [esp + 0x10]
xor eax, eax
inc eax
cmp esi, 0x800c0000
mov dword [esp + 0x5c], eax
mov eax, 0xa2
cmove eax, dword [esp + 0xa8]
mov byte [edx], al
inc edx
mov edi, dword [esp + 0x1c]
cmp edi, 0xffffffff
mov dword [esp + 0x10], edx
cmove edi, dword [esp + 0x64]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x40], edi
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
jmp 0x4804d1
mov edx, dword [esp + 0x20]
test dl, 8
mov ecx, dword [esp + 0x10]
setne al
add al, 0x1f
cmp dword [esp + 0x78], 0
mov byte [ecx], al
lea esi, [ecx + 1]
je 0x47e683
cmp ebx, 0x7f
jbe 0x47e683
push esi
push ebx
call fcn.004969c5
pop ecx
pop ecx
jmp 0x47e688
xor eax, eax
mov byte [esi], bl
inc eax
lea edx, [eax + esi]
jmp 0x47e5f3
mov eax, dword [esp + 0xd4]
cmp esi, edx
jne 0x47e782
cmp ebx, eax
jae 0x47e782
cmp dword [ecx + 8], eax
jae 0x47e782
lea edx, [ecx + 0xc]
cmp dword [edx], 0x800d0000
jne 0x47e782
mov eax, ebx
test eax, eax
jns 0x47e6c8
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x550a58]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x47e6e4
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x554e58]
imul eax, eax, 0xc
cmp byte [eax + 0x54c84b], 0
jne 0x47e782
cmp dword [esp + 0x78], ebp
jne 0x47e70d
cmp dword [esp + 0xb8], ebp
je 0x47e71c
cmp ebx, 0x7f
jbe 0x47e71c
mov eax, dword [eax + 0x54c84c]
add eax, ebx
jmp 0x47e727
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
movzx eax, byte [eax + ebx]
cmp ebx, eax
je 0x47e782
mov ebp, dword [esp + 0x3c]
cmp dword [ebp + 8], eax
jne 0x47e782
mov ecx, dword [esp + 0x20]
mov eax, ecx
mov dword [esp + 0x14], edx
and eax, 8
jne 0x47e751
mov dword [esp + 0xbc], edi
mov dword [esp + 0x80], edi
mov ebp, dword [esp + 0x78]
or ecx, 8
test eax, eax
cmovne ecx, dword [esp + 0x4c]
mov dword [esp + 0x20], ecx
test ebp, ebp
je 0x47fcfb
lea eax, [esp + 0x138]
push eax
push ebx
call fcn.004969c5
pop ecx
pop ecx
mov edi, eax
jmp 0x47fd02
mov eax, dword [esp + 0x10]
xor ecx, ecx
add eax, 4
mov dword [esp + 0x58], ecx
push 0x20
mov dword [esp + 0x3c], eax
mov ebp, ecx
push ecx
lea eax, [esp + 0x148]
mov dword [esp + 0x48], ebp
push eax
mov dword [esp + 0x40], ecx
mov ebx, ecx
mov dword [esp + 0x58], ecx
call fcn.004b6f20
mov eax, dword [esp + 0x20]
add esp, 0xc
add eax, 4
mov dword [esp + 0x14], eax
mov edi, dword [eax]
cmp edi, 0x800d0000
je 0x47e8b3
mov ecx, eax
mov edx, eax
mov esi, ebx
cmp edi, 0x801c0000
je 0x47ebf8
cmp edi, 0x801d0000
je 0x47ebf8
cmp edi, 0x80050000
jne 0x47e81f
add eax, 4
mov dword [esp + 0x14], eax
mov edi, dword [eax]
mov esi, dword [esp + 0xa8]
cmp edi, esi
je 0x47eb84
cmp edi, 0xa
je 0x47eb84
mov edx, dword [esp + 0x24]
jmp 0x47eb8f
cmp edi, 0x80000000
jb 0x47e7fe
mov eax, edi
and eax, 0xffff0000
cmp eax, 0x80180000
jne 0x47f5fd
movzx ecx, di
inc ebx
lea eax, [ecx - 6]
cmp eax, 0xf
ja case.0x47e845.12
jmp dword [eax*4 + 0x480ccd]
mov ebp, dword [esp + 0x94]
xor eax, eax
mov ecx, eax
mov al, byte [ecx + ebp + 0x40]
or byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0x20
jl 0x47e857
mov ebp, dword [esp + 0x40]
xor esi, esi
inc esi
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
add ecx, 4
cmp eax, ecx
jbe 0x47e892
mov edx, dword [esp + 0x60]
mov dword [esp + 0x34], esi
test edx, edx
je 0x47e892
sub eax, ecx
mov dword [esp + 0x38], ecx
add dword [edx], eax
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
mov ecx, eax
mov edx, ecx
mov edi, dword [eax]
cmp edi, 0x800d0000
jne 0x47e7d3
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
cmp edi, 0xffffffff
mov eax, dword [esp + 0x30]
cmove edi, dword [esp + 0x64]
cmp dword [esp + 0x34], 0
mov edx, dword [esp + 0x28]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x40], edi
mov dword [esp + 0x8c], eax
je 0x47ed93
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x4c]
and eax, 0x20000
jne 0x47e90e
test edi, edi
jne 0x47e90e
test ebp, ebp
jne 0x47ed8f
cmp dword [esp + 0x58], 0
mov ecx, dword [esp + 0x78]
jne 0x47e92d
test ecx, ecx
je 0x47e968
test ebp, ebp
je 0x47e968
cmp esi, 0x800e0000
je 0x47e968
test eax, eax
jne 0x47e968
mov eax, dword [esp + 0x38]
mov byte [eax], 2
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x47e968
push eax
push 0x100
call fcn.004969c5
mov ecx, dword [esp + 0x40]
add ecx, eax
push ecx
push 0x10ffff
mov dword [esp + 0x48], ecx
call fcn.004969c5
add esp, 0x10
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov ebp, dword [esp + 0xfc]
mov byte [eax], cl
inc dword [esp + 0x38]
cmp esi, ebp
mov ecx, dword [esp + 0x10]
sete al
mov byte [ecx], 0x70
mov byte [ecx + 3], al
test edi, edi
je 0x47e993
or al, 4
mov byte [ecx + 3], al
test ebx, ebx
jle 0x47ed6f
or byte [ecx + 3], 2
lea esi, [ecx + 4]
mov eax, dword [esp + 0x38]
sub eax, esi
push eax
lea eax, [esi + 0x20]
push esi
push eax
call fcn.004b8970
add esp, 0xc
cmp dword [esp + 0x2c], ebp
jne 0x47e9cf
test edi, edi
jne 0x47e9cf
xor eax, eax
not byte [esp + eax + 0x140]
inc eax
cmp eax, 0x20
jl 0x47e9c2
push 0x20
lea eax, [esp + 0x144]
push eax
push esi
call fcn.004b8970
mov ebx, dword [esp + 0x44]
add esp, 0xc
add ebx, 0x20
jmp 0x47ed73
xor esi, esi
inc esi
xor eax, eax
mov ebp, esi
mov ecx, eax
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x94]
mov al, byte [ecx + ebp + 0x40]
not al
or byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0x20
jl 0x47ea02
jmp 0x47ec9a
mov ebp, dword [esp + 0x94]
xor eax, eax
mov ecx, eax
mov al, byte [ecx + ebp + 0xa0]
or byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0x20
jl 0x47ea25
jmp 0x47e868
xor esi, esi
inc esi
xor eax, eax
mov ebp, esi
mov ecx, eax
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x94]
mov al, byte [ecx + ebp + 0xa0]
not al
or byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0x20
jl 0x47ea52
jmp 0x47ec9a
mov esi, dword [esp + 0x94]
xor eax, eax
mov edx, eax
lea eax, [esp + 0x140]
sub esi, eax
lea ecx, [esp + 0x140]
add ecx, edx
mov al, byte [ecx + esi]
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x47ea81
jmp case.0x47e845.12
mov esi, dword [esp + 0x94]
xor eax, eax
mov edx, eax
lea ebp, [eax + 1]
lea eax, [esp + 0x140]
mov dword [esp + 0x40], ebp
sub esi, eax
lea ecx, [esp + 0x140]
add ecx, edx
mov al, byte [ecx + esi]
not al
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x47eab5
jmp case.0x47e845.12
push 0xffffffffffffffff
push 0x568318
push dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
and eax, 0xfffffff7
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x154]
push eax
call fcn.0047d6f5
add esp, 0x18
jmp case.0x47e845.12
push 0x568318
push dword [esp + 0x28]
mov eax, dword [esp + 0x28]
and eax, 0xfffffff7
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x150]
push eax
call fcn.0047d801
add esp, 0x14
jmp case.0x47e845.12
push 0xffffffffffffffff
push 0x568368
jmp 0x47ead7
push 0x568368
jmp 0x47eb02
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov edx, eax
movzx ebx, ax
mov eax, dword [esp + 0x38]
shr edx, 0x10
cmp ecx, 0x10
setne cl
add cl, 3
mov byte [eax], cl
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
mov byte [eax], dl
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
mov byte [eax], bl
xor eax, eax
inc dword [esp + 0x38]
mov ebx, esi
inc eax
mov dword [esp + 0x4c], eax
jmp case.0x47e845.12
mov edx, dword [esp + 0x24]
or dword [edx + 0x70], 0x800
mov eax, dword [esp + 0x14]
cmp dword [eax + 4], 0x801f0000
je 0x47ebc8
cmp dword [eax + 4], 0x801e0000
je 0x47ebc8
push edi
push edi
push edx
push dword [esp + 0x2c]
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x154]
push eax
call fcn.0047d885
add esp, 0x18
add ebx, eax
jmp case.0x47e845.12
mov ecx, dword [esp + 0x14]
add ecx, 8
mov dword [esp + 0x14], ecx
mov eax, dword [ecx]
cmp eax, 0x80050000
jne 0x47ebe5
lea eax, [ecx + 4]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
cmp eax, esi
je 0x47ebee
cmp eax, 0xa
jne 0x47ebf5
or dword [edx + 0x70], 0x800
push eax
jmp 0x47eba6
xor eax, eax
mov ebp, 0x801d0000
cmp edi, ebp
sete al
cmp edi, 0x801c0000
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
cmove edx, ecx
add edx, 4
mov dword [esp + 0x14], edx
mov edx, dword [edx]
test al, 8
je 0x47ec2a
xor ecx, ecx
cmp edx, 2
cmovle edx, ecx
test eax, 0x20000
je 0x47eca3
mov eax, edx
sub eax, 8
je 0x47ec53
sub eax, 1
je 0x47ec53
sub eax, 1
je 0x47ec53
cmp dword [esp + 0x78], 0
mov ebp, dword [esp + 0x40]
je 0x47eca7
or dword [esp + 0x58], ebp
jmp 0x47eca7
mov eax, dword [esp + 0x38]
cmp edi, ebp
sete cl
add cl, 3
mov byte [eax], cl
mov ecx, dword [esp + 0x38]
inc ecx
cmp edx, 9
mov dword [esp + 0x38], ecx
setne al
add al, 0xf
cmp edx, 8
movzx eax, al
cmove eax, dword [esp + 0xdc]
xor esi, esi
mov byte [ecx], al
xor ecx, ecx
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
mov byte [eax], cl
inc dword [esp + 0x38]
inc esi
mov dword [esp + 0x4c], esi
mov ebp, dword [esp + 0x40]
jmp 0x47e86f
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x94]
imul esi, edx, 0xc
push 0x20
mov eax, dword [esi + 0x549f28]
add eax, ebx
push eax
lea eax, [esp + 0x168]
push eax
call fcn.004b8970
mov eax, dword [esi + 0x549f2c]
add esp, 0xc
mov esi, dword [esi + 0x549f30]
test eax, eax
js 0x47ed09
xor ecx, ecx
lea edx, [eax + ebx]
test esi, esi
js 0x47ecf7
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x160], al
inc ecx
cmp ecx, 0x20
jl 0x47ece5
jmp 0x47ed09
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0x160], al
inc ecx
cmp ecx, 0x20
jl 0x47ecf7
mov eax, esi
neg eax
test esi, esi
cmovns eax, esi
xor esi, esi
inc esi
cmp eax, esi
jne 0x47ed23
and byte [esp + 0x161], 0xc3
jmp 0x47ed30
cmp eax, 2
jne 0x47ed30
and byte [esp + 0x16b], 0x7f
xor eax, eax
mov ecx, eax
cmp edi, 0x801d0000
jne 0x47ed54
mov al, byte [esp + ecx + 0x160]
not al
or byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0x20
jl 0x47ed3c
jmp 0x47ed68
mov al, byte [esp + ecx + 0x160]
or byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0x20
jl 0x47ed54
mov ebx, esi
jmp 0x47e86f
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
mov eax, ebx
sub eax, ecx
mov dword [esp + 0x10], ebx
sar eax, 8
sub bl, cl
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
jmp 0x47e4be
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x70], ebp
mov ebx, dword [esp + 0x10]
setne al
add al, 0x6e
mov byte [ebx], al
inc ebx
cmp dword [esp + 0x60], 0
jne 0x47edd8
cmp esi, 0x800e0000
jne 0x47edc1
xor eax, eax
not byte [esp + eax + 0x140]
inc eax
cmp eax, 0x20
jl 0x47edb4
push 0x20
lea eax, [esp + 0x144]
push eax
push ebx
call fcn.004b8970
mov edx, dword [esp + 0x34]
add esp, 0xc
add ebx, 0x20
mov dword [esp + 0x10], ebx
jmp 0x47e646
test dword [esp + 0x20], 0x400
je 0x47ee0a
cmp dword [esp + 0x1c], 0xffffffff
jne 0x47ee01
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x10]
mov byte [ebx], 0x1c
jmp 0x47ee11
mov ebx, dword [esp + 0x10]
mov byte [ebx], 0x1b
inc ebx
mov dword [esp + 0x10], ebx
jmp 0x47e4be
mov ecx, dword [esp + 0x10]
mov eax, 0x88
mov dword [esp + 0x34], eax
mov eax, ebx
shr eax, 8
push 2
mov byte [ecx + 3], al
mov eax, dword [esp + 0x28]
mov byte [ecx + 4], bl
pop ebp
mov dword [eax + 0x78], ebx
jmp 0x47f584
mov eax, 0x8a
jmp 0x47f580
cmp edx, dword [esp + 0x100]
ja 0x47f1c9
je 0x47f16c
cmp edx, 0x80100000
je 0x47f144
cmp edx, 0x80110000
je 0x47ef82
cmp edx, 0x80120000
je 0x47ef29
cmp edx, 0x80130000
je 0x47ef82
cmp edx, dword [esp + 0xd8]
je 0x47ef82
cmp edx, 0x80150000
je 0x47eee3
cmp edx, 0x80160000
jne 0x47f5fd
mov ebx, dword [esp + 0x20]
test ebx, 0x400
mov edx, dword [esp + 0x10]
setne al
add al, 0x19
mov byte [edx], al
inc edx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
jmp 0x4804d5
mov eax, 0x8a
mov dword [esp + 0x34], eax
xor eax, eax
cmp dword [ecx + 4], eax
jbe 0x47ef05
cmp dword [ecx + 8], 0xa
jb 0x47ef01
jne 0x47ef13
cmp dword [ecx + 0xc], 0x28
ja 0x47ef13
mov al, 0x95
jmp 0x47ef15
cmp dword [ecx + 8], 0xa
jne 0x47ef13
cmp dword [ecx + 0xc], 0x28
mov al, 0x95
je 0x47ef15
mov al, 0x94
mov ecx, dword [esp + 0x10]
xor ebp, ebp
inc ebp
mov byte [ecx + 3], al
add dword [esp + 0x14], 0xc
jmp 0x47f584
mov ebx, dword [esp + 0x24]
add ecx, 4
mov eax, 0x8a
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], eax
mov edx, dword [ecx]
lea eax, [ecx + 4]
mov dword [esp + 0x14], eax
mov ecx, dword [eax]
cmp ecx, dword [ebx + 0x74]
ja 0x480bc3
cmp ecx, dword [ebx + 0x88]
jbe 0x47ef5f
mov dword [ebx + 0x88], ecx
mov ebp, dword [esp + 0x7c]
sub edx, 2
mov dword [esp + 0x6c], edx
mov eax, ecx
mov edx, dword [esp + 0x10]
shr eax, 8
mov byte [edx + 3], 0x90
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x47f584
mov eax, 0x8a
add ecx, 4
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ebp, dword [ecx]
mov esi, dword [eax + 0x64]
lea eax, [ecx + 4]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov dword [esp + 0x6c], eax
mov ebx, dword [ecx + 0x1c]
add ebx, eax
xor eax, eax
mov edi, eax
mov dword [esp + 0x70], ebx
cmp ax, word [ecx + 0x58]
jae 0x47f043
movzx eax, word [esi + 8]
cmp ebp, eax
jne 0x47efdf
push ebp
push dword [esi]
push ebx
call fcn.0049503f
add esp, 0xc
test eax, eax
je 0x47efed
mov ecx, dword [esp + 0x24]
movzx eax, word [ecx + 0x58]
inc edi
add esi, 0xc
cmp edi, eax
jb 0x47efc3
jmp 0x47f03f
xor eax, eax
cmp word [esi + 0xa], ax
jne 0x47f03b
cmp dword [esp + 0x2c], 0x80130000
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
sete al
lea eax, [eax*2 + 0x90]
mov byte [ecx + 3], al
mov eax, dword [esi + 4]
shr eax, 8
mov byte [ecx + 4], al
mov al, byte [esi + 4]
mov byte [ecx + 5], al
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x88]
jbe 0x47f032
mov dword [ebx + 0x88], eax
mov ebp, dword [esp + 0x7c]
jmp 0x47f584
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
movzx eax, word [ecx + 0x58]
cmp edi, eax
jb 0x47f0c2
mov edi, dword [esp + 0xd8]
xor eax, eax
mov ebx, eax
cmp edx, edi
jne 0x480bf1
inc eax
mov edx, eax
cmp ebp, eax
jbe 0x47f097
mov esi, dword [esp + 0x70]
movzx ecx, byte [edx + esi]
imul ebx, ebx, 0xa
add ebx, 0xffffffd0
add ebx, ecx
cmp ebx, dword [esp + 0xac]
ja 0x480bd5
inc edx
cmp edx, ebp
jb 0x47f069
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
cmp edx, edi
jne 0x480bf1
cmp ebx, dword [ecx + 0x74]
ja 0x480bf1
mov ecx, dword [esp + 0x10]
test ebx, ebx
cmove ebx, dword [esp + 0xac]
mov eax, ebx
shr eax, 8
mov byte [ecx + 3], 0x92
mov byte [ecx + 4], al
mov byte [ecx + 5], bl
jmp 0x47f032
mov edi, dword [esp + 0x10]
cmp edx, 0x80130000
sete al
lea eax, [eax*2 + 0x90]
mov byte [edi + 3], al
xor eax, eax
mov ecx, eax
mov edx, eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x60], eax
jne 0x47f123
push dword [esp + 0x24]
mov ecx, dword [esp + 0x6c]
lea eax, [esp + 0xa0]
push ecx
push eax
lea eax, [esp + 0x58]
push eax
push ebp
push ebx
call fcn.00481096
add esp, 0x18
test eax, eax
je 0x480cb2
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x4c]
inc byte [edi + 3]
mov eax, edx
sar eax, 8
mov byte [edi + 4], al
mov eax, ecx
push 5
sar eax, 8
pop ebp
mov byte [edi + 5], dl
mov byte [edi + 6], al
mov byte [edi + 7], cl
jmp 0x47f584
add ecx, 4
mov ebx, 0x8a
mov dword [esp + 0x14], ecx
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10]
mov byte [eax + 3], 0xa7
xor eax, eax
lea ebp, [eax + 1]
mov ecx, dword [esp + 0x24]
jmp 0x47f66c
mov edi, dword [esp + 0x1c]
xor eax, eax
mov ebx, dword [esp + 0x30]
inc eax
mov edx, dword [esp + 0x10]
cmp edi, 0xffffffff
mov esi, dword [esp + 0x28]
cmove edi, dword [esp + 0x64]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x20]
mov eax, ebx
shr eax, 5
and al, 1
mov dword [esp + 0x1c], edi
or al, 0xc
mov dword [esp + 0x84], esi
mov byte [edx], al
inc edx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], edi
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x10], edx
jmp 0x47eed6
cmp edx, 0x80180000
je 0x47f469
cmp edx, 0x80190000
je 0x480c17
cmp edx, 0x801a0000
je 0x47f45f
cmp edx, 0x801b0000
je 0x47f41c
cmp edx, 0x80200000
je 0x47f3d7
cmp edx, 0x80210000
jne 0x47f5fd
mov edx, dword [esp + 0x24]
add ecx, 4
xor eax, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x58], eax
mov ebp, dword [ecx]
lea eax, [ecx + 4]
mov ecx, dword [edx + 0x1c]
mov esi, dword [edx + 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
add ecx, eax
mov dword [esp + 0x6c], eax
xor eax, eax
mov ebx, eax
mov dword [esp + 0x4c], ecx
mov edi, eax
cmp ax, word [edx + 0x58]
jae 0x480c01
movzx eax, word [esi + 8]
cmp ebp, eax
jne 0x47f2b3
push ebp
push dword [esi]
push ecx
call fcn.0049503f
add esp, 0xc
test eax, eax
jne 0x47f2ab
cmp dword [esp + 0x2c], 0x80210000
movzx eax, word [esi + 0xa]
mov ebx, dword [esi + 4]
mov dword [esp + 0x58], eax
je 0x47f33b
xor eax, eax
mov ecx, ebx
inc eax
mov edx, eax
shl edx, cl
cmp ebx, 0x20
mov ecx, dword [esp + 0x4c]
cmovb eax, edx
mov edx, dword [esp + 0x24]
or dword [edx + 0x8c], eax
cmp ebx, dword [edx + 0x88]
jbe 0x47f2b3
mov dword [edx + 0x88], ebx
jmp 0x47f2b3
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
movzx eax, word [edx + 0x58]
inc edi
add esi, 0xc
cmp edi, eax
jb 0x47f24d
test ebx, ebx
je 0x480c01
cmp dword [esp + 0x58], 0
jne 0x47f344
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
cmp edi, 0xffffffff
jne 0x47f2e9
mov eax, dword [esp + 0x64]
mov edi, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], eax
test byte [esp + 0x20], 8
mov ecx, ebx
mov esi, dword [esp + 0x10]
setne al
add al, 0x71
mov byte [esi], al
mov eax, ebx
shr eax, 8
mov byte [esi + 1], al
xor eax, eax
inc eax
mov byte [esi + 2], bl
mov edx, eax
add esi, 3
shl edx, cl
cmp ebx, 0x20
mov dword [esp + 0x10], esi
cmovb eax, edx
mov edx, dword [esp + 0x28]
or dword [ebp + 0x8c], eax
cmp ebx, dword [ebp + 0x88]
jbe 0x47e64a
mov dword [ebp + 0x88], ebx
jmp 0x47e64a
mov ebp, dword [esp + 0x24]
jmp 0x47f3f1
xor eax, eax
mov ecx, eax
mov edx, eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x34], edx
cmp dword [esp + 0x60], eax
jne 0x47f387
push dword [esp + 0x24]
lea eax, [esp + 0x5c]
push dword [esp + 0x6c]
push eax
lea eax, [esp + 0x40]
push eax
push ebp
push dword [esp + 0x60]
call fcn.00481096
add esp, 0x18
test eax, eax
je 0x480cb2
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
cmp edi, 0xffffffff
mov ebx, dword [esp + 0x10]
cmove edi, dword [esp + 0x64]
test byte [esp + 0x20], 8
mov ebp, dword [esp + 0x18]
setne al
mov dword [esp + 0x1c], edi
add al, 0x73
mov byte [ebx], al
mov eax, edx
sar eax, 8
mov byte [ebx + 1], al
mov eax, ecx
mov ebx, dword [esp + 0x70]
sar eax, 8
mov byte [ebx + 2], dl
lea edx, [ebx + 5]
mov byte [ebx + 3], al
mov esi, edx
mov byte [ebx + 4], cl
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
jmp 0x4804cd
mov ebp, dword [esp + 0x24]
add ecx, 4
mov dword [esp + 0x14], ecx
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
cmp ebx, dword [ebp + 0x74]
ja 0x47e3b7
mov edx, dword [esp + 0x10]
mov eax, ebx
shr eax, 8
mov byte [edx], 0x75
mov byte [edx + 1], al
xor eax, eax
mov byte [edx + 2], bl
add edx, dword [esp + 0x7c]
mov dword [esp + 0xa4], eax
inc eax
mov dword [ebp + 0xb4], eax
jmp 0x47e623
mov eax, dword [esp + 0x104]
add ecx, 4
mov dword [esp + 0x14], ecx
xor edx, edx
inc edx
mov ebx, dword [ecx]
mov dword [eax], ebx
mov eax, ebx
shr eax, 0x12
and eax, edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0xe8], eax
xor eax, edx
mov dword [esp + 0xec], eax
mov eax, ebx
shr eax, 3
and eax, edx
mov dword [esp + 0x80], eax
jmp 0x47eece
mov eax, 0x86
jmp 0x47f580
mov eax, dword [esp + 0x1c]
xor edx, edx
inc edx
cmp ebx, 5
jbe 0x47f48a
cmp ebx, 0x17
jae 0x47f48a
cmp eax, 0xffffffff
mov dword [esp + 0x5c], edx
cmove eax, dword [esp + 0x64]
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x84], esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], ebp
cmp ebx, 0xf
je 0x47f52c
cmp ebx, 0x10
je 0x47f52c
mov ebp, dword [esp + 0x24]
xor eax, eax
cmp word [ebp + 0x5e], ax
jbe 0x47f4da
cmp ebx, dword [esp + 0x7c]
jne 0x47f4da
mov eax, dword [ebp]
test byte [eax + 0x24], 0x40
je 0x480c6a
xor eax, eax
mov ecx, dword [esp + 0xdc]
cmp ebx, ecx
jne 0x47f4ee
or dword [ebp + 0x70], 0x400000
jmp 0x47f50a
cmp ebx, 5
je 0x47f4fc
cmp ebx, 4
je 0x47f4fc
cmp ebx, edx
jne 0x47f50a
cmp dword [ebp + 0xa8], eax
jne 0x47f50a
mov dword [ebp + 0xa8], edx
cmp dword [esp + 0x78], 0
jne 0x47f51c
cmp ebx, ecx
jne 0x47f51c
mov ebx, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
mov byte [edx], bl
inc edx
mov dword [esp + 0x10], edx
jmp 0x47e4be
add ecx, 4
mov dword [esp + 0x14], ecx
mov eax, dword [ecx]
mov ecx, eax
shr ecx, 0x10
movzx edx, ax
cmp ebx, 0x10
jne 0x47f558
test ecx, ecx
jne 0x47f555
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xa8]
mov byte [ebx], al
jmp 0x47f56b
cmp ebx, 0x10
mov ebx, dword [esp + 0x10]
sete al
add al, 0xf
mov byte [ebx], al
mov byte [ebx + 1], cl
add ebx, 2
mov byte [ebx], dl
mov ecx, dword [esp + 0x14]
inc ebx
mov dword [esp + 0x10], ebx
mov esi, ebx
jmp 0x4804c9
mov eax, 0x85
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x34]
xor eax, eax
lea esi, [eax + 1]
jmp 0x47f163
mov ebx, dword [esp + 0x2c]
cmp ebx, 0x80310000
ja 0x47fadc
je 0x47fac9
cmp ebx, dword [esp + 0x108]
ja 0x47fa65
je 0x47f9dc
cmp ebx, 0x80230000
je 0x47f661
cmp ebx, 0x80240000
je 0x47f62a
cmp ebx, 0x80250000
je 0x47f621
cmp ebx, 0x80260000
je 0x47f61a
cmp ebx, 0x80270000
je 0x47f613
cmp ebx, 0x80280000
je 0x47f60c
mov esi, ebx
cmp esi, 0x80290000
je 0x47fb5a
mov eax, dword [esp + 0x68]
mov dword [eax], 0xbd
jmp 0x480cb2
mov ebx, 0x83
jmp 0x47f664
mov ebx, 0x82
jmp 0x47f664
mov ebx, 0x81
jmp 0x47f664
mov ebx, dword [esp + 0xc0]
jmp 0x47f664
cmp dword [ecx + 4], 0x80190000
jne 0x47f65d
cmp dword [ecx + 8], 0x80340000
jb 0x47f645
cmp dword [ecx + 8], 0x803f0000
jbe 0x47f65d
mov edx, dword [esp + 0x10]
mov byte [edx], 0xa2
inc edx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
add ecx, 4
jmp 0x47e377
push 0x7f
jmp 0x47f663
push 0x7e
pop ebx
mov ecx, dword [esp + 0x24]
inc word [ecx + 0x5e]
mov eax, dword [esp + 0x10]
xor edx, edx
inc word [ecx + 0x5c]
mov byte [eax], bl
add dword [esp + 0x14], 4
mov dword [esp + 0x44], eax
xor eax, eax
cmp dword [esp + 0x60], edx
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
cmove eax, edx
mov edi, dword [ecx + 0xa4]
push eax
push ecx
push dword [esp + 0x114]
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0xf8]
push eax
push ebp
push dword [esp + 0x88]
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x4c]
call fcn.00480d21
add esp, 0x30
mov dword [esp + 0x9c], eax
test eax, eax
je 0x480cb2
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0xac]
add word [ebp + 0x5c], cx
test esi, esi
je 0x47f726
cmp ebx, 0x8a
je 0x47f73e
mov ecx, dword [esp + 0x5c]
test eax, eax
push 1
pop eax
cmovg ecx, eax
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xac]
lea eax, [ebx - 0x7e]
cmp eax, 5
ja 0x47f732
add word [ebp + 0x5e], cx
cmp ebx, 0x8a
jne 0x47f83c
cmp dword [esp + 0x60], 0
jne 0x47f83c
mov edx, dword [esp + 0x10]
xor eax, eax
mov esi, eax
movzx ecx, byte [edx + 1]
inc esi
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x79
jne 0x47f751
mov edx, dword [esp + 0x10]
cmp byte [edx + 3], 0xa7
jne 0x47f788
xor eax, eax
inc eax
cmp esi, eax
jg 0x480c76
mov byte [edx + 3], 0x94
mov edx, dword [esp + 0x44]
jmp 0x47f523
cmp esi, 2
jg 0x480c89
xor eax, eax
inc eax
cmp esi, eax
jne 0x47f7eb
mov edx, dword [esp + 0x30]
xor ebx, ebx
mov ecx, dword [esp + 0x64]
mov eax, ecx
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x84], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0xa4], ebx
jmp 0x47f901
cmp dword [esp + 0x9c], 0
jle 0x47f891
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], esi
mov dword [esp + 0x84], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0xa4], eax
jmp 0x47f8f3
mov ebp, dword [esp + 0x60]
test ebp, ebp
je 0x47f891
mov esi, dword [esp + 0x98]
mov ecx, 0x7fffffeb
mov edx, dword [ebp]
sub ecx, edx
lea eax, [esi - 6]
cmp ecx, eax
jb 0x480c9c
lea eax, [esi - 6]
add eax, edx
mov edx, dword [esp + 0x7c]
mov dword [ebp], eax
xor ecx, ecx
mov eax, dword [esp + 0x10]
lea esi, [eax + 6]
mov byte [eax + 1], cl
mov byte [eax + 2], dl
mov word [eax + 3], 0x79
mov byte [eax + 5], dl
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], esi
jmp 0x47e37b
mov edx, dword [esp + 0x44]
mov ecx, edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x10], edx
cmp ebx, 0xa7
je 0x47fe53
mov edx, dword [esp + 0x30]
xor esi, esi
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0xa4], esi
mov esi, ecx
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x84], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x5c], eax
mov dword [esp + 0x10], esi
cmp ebx, 0x84
jb 0x47f982
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xa0]
cmp ebp, 0xffffffff
jne 0x47f937
cmp ecx, ebp
je 0x47f937
mov ebx, dword [esp + 0x64]
cmp ecx, ebx
jae 0x47f92d
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x1c], ecx
xor ecx, ecx
inc ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0xa4], ecx
jmp 0x47f931
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x40], ebx
jmp 0x47f95c
mov ebx, dword [esp + 0x64]
cmp ecx, ebx
jae 0x47f95c
cmp eax, ebx
jb 0x47f964
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xb4], eax
mov eax, ecx
or eax, edi
mov dword [esp + 0xa0], eax
cmp eax, ebx
jae 0x47fe60
mov ebp, eax
mov edi, dword [esp + 0xb4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], ebp
jmp 0x4804d1
cmp ebx, 0x7e
je 0x47f99b
mov dword [esp + 0x5c], eax
mov dword [esp + 0x10], esi
cmp ebx, 0x82
jne 0x47fe60
mov ebx, dword [esp + 0x64]
mov esi, ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x10], esi
cmp dword [esp + 0xa0], ebx
jae 0x47fe60
mov dword [esp + 0x5c], eax
mov dword [esp + 0x10], esi
cmp dword [esp + 0xb0], ebx
jae 0x47fe60
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x10], esi
jmp 0x47f966
mov ebp, dword [esp + 0x24]
xor eax, eax
inc eax
mov dword [esp + 0xe4], eax
mov ecx, dword [ebp + 0x60]
mov dword [ebp + 0xac], eax
jmp 0x47fa2b
mov ax, word [ecx + 6]
cmp ax, word [ebp + 0x5e]
jb 0x47fa2f
mov eax, dword [esp + 0x60]
test eax, eax
je 0x47fa0f
mov edx, dword [esp + 0x7c]
add dword [eax], edx
jmp 0x47fa29
mov edx, dword [esp + 0x10]
mov byte [edx], 0xa5
mov al, byte [ecx + 5]
mov byte [edx + 1], al
mov al, byte [ecx + 4]
mov byte [edx + 2], al
add edx, 3
mov dword [esp + 0x10], edx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x47f9f5
mov edx, dword [esp + 0x10]
xor eax, eax
cmp word [ebp + 0x5e], ax
mov edi, dword [esp + 0x1c]
seta al
add al, 0xa3
mov byte [edx], al
inc edx
mov dword [esp + 0x10], edx
mov esi, edx
mov edx, dword [esp + 0x28]
cmp edi, 0xffffffff
jne 0x47e64a
mov edi, dword [esp + 0x64]
mov dword [esp + 0x1c], edi
jmp 0x47e64a
mov esi, dword [esp + 0x2c]
cmp esi, 0x802b0000
je 0x47faae
cmp esi, 0x802c0000
je 0x47faae
cmp esi, 0x802d0000
je 0x47fb5a
cmp esi, 0x802e0000
je 0x47faa1
cmp esi, 0x802f0000
je 0x47facd
cmp esi, 0x80300000
jne 0x47f5fd
mov eax, dword [esp + 0x24]
xor ecx, ecx
inc ecx
mov dword [eax + 0xb0], ecx
mov edx, dword [esp + 0x10]
lea eax, [esi + 0x7fd70000]
shr eax, 0x10
mov al, byte [eax*4 + 0x549d34]
mov byte [edx], al
jmp 0x47f522
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
xor ecx, ecx
inc ecx
mov dword [eax + 0xb0], ecx
jmp 0x47fb5a
mov esi, dword [esp + 0x2c]
cmp esi, dword [esp + 0x110]
ja 0x47fc1f
je 0x47fb2f
cmp esi, 0x80320000
je 0x47fc08
cmp esi, 0x80330000
je 0x47fb4f
cmp esi, 0x80340000
je 0x47fb3e
cmp esi, 0x80350000
je 0x47fb3e
cmp esi, 0x80360000
je 0x47fb3e
cmp esi, 0x80370000
je 0x47fb2f
cmp esi, 0x80380000
jne 0x47f5fd
xor ebp, ebp
mov ecx, 0x10000
inc ebp
mov ebx, ebp
jmp 0x47fe8d
xor ecx, ecx
mov ebx, ecx
mov ecx, 0x10000
xor ebp, ebp
inc ebp
jmp 0x47fe8d
mov ebp, dword [esp + 0x24]
or dword [ebp + 0x70], 0x1000
mov ecx, dword [esp + 0x10]
lea eax, [esi + 0x7fd70000]
shr eax, 0x10
xor edx, edx
mov ebx, edx
mov al, byte [eax*4 + 0x549d34]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
mov edi, dword [eax]
mov dword [esp + 0x44], ecx
test edi, edi
jle 0x47fbff
mov ebp, dword [esp + 0x78]
add eax, 4
mov dword [esp + 0x14], eax
mov ecx, dword [eax]
test ebp, ebp
je 0x47fbbe
lea eax, [esp + 0x138]
push eax
push ecx
call fcn.004969c5
mov edx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
jmp 0x47fbc8
xor esi, esi
mov byte [esp + 0x138], cl
inc esi
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x47fbd4
add dword [ecx], esi
jmp 0x47fbf6
push esi
lea eax, [esp + 0x13c]
push eax
push edx
call fcn.004b8970
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x14]
add edx, esi
mov dword [esp + 0x10], edx
add ebx, esi
sub edi, 1
jne 0x47fb95
mov ecx, dword [esp + 0x44]
mov byte [ecx], bl
xor eax, eax
jmp 0x47fac2
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
or dword [ebx + 0x70], 0x1000
mov byte [edx], 0x9e
jmp 0x47f522
cmp esi, 0x803a0000
je 0x47fe84
cmp esi, 0x803b0000
je 0x47fe84
cmp esi, 0x803c0000
je 0x47fe84
cmp esi, 0x803d0000
je 0x47fe69
cmp esi, 0x803e0000
je 0x47fe69
cmp esi, 0x803f0000
je 0x47fe69
cmp esi, 0x80000000
jae 0x47f5fd
mov ebx, dword [ecx]
xor edi, edi
inc edi
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x5c], edi
test ebp, ebp
jne 0x47fc8d
cmp dword [esp + 0xb8], ebp
je 0x47fcfb
test byte [esp + 0x20], 8
je 0x47e763
mov eax, ebx
cdq
idiv dword [esp + 0xc0]
movzx eax, word [eax*2 + 0x550a58]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x554e58]
imul eax, eax, 0xc
mov cl, byte [eax + 0x54c84b]
test cl, cl
je 0x47e763
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov word [eax], 0xa10
lea esi, [eax + 3]
mov byte [eax + 2], cl
mov dword [esp + 0x10], esi
cmp edi, 0xffffffff
jne 0x47e64a
mov eax, dword [esp + 0x64]
mov edi, eax
mov dword [esp + 0x40], eax
jmp 0x47fa5c
mov byte [esp + 0x138], bl
test byte [esp + 0x20], 8
mov ecx, dword [esp + 0x10]
setne al
add al, 0x1d
push edi
mov byte [ecx], al
lea esi, [ecx + 1]
lea eax, [esp + 0x13c]
push eax
push esi
call fcn.004b8970
mov al, byte [esp + 0x144]
lea ebx, [esi + edi]
add esp, 0xc
mov dword [esp + 0x10], ebx
cmp al, 0xd
je 0x47fd3d
cmp al, 0xa
jne 0x47fd4a
mov ebp, dword [esp + 0x24]
or dword [ebp + 0x70], 0x800
jmp 0x47fd4e
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
jne 0x47fdb0
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x40], ecx
xor ecx, ecx
inc ecx
cmp edi, ecx
je 0x47fd84
cmp dword [esp + 0x80], 0
je 0x47fd84
mov ebp, dword [esp + 0x64]
mov edi, ebp
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], edi
jmp 0x47fdf9
movzx edx, al
cmp edi, ecx
mov eax, dword [esp + 0x80]
mov edi, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
je 0x47fdeb
movzx eax, byte [ebx - 1]
mov ebp, dword [ebp + 0xa4]
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], ebp
jmp 0x47fdf9
mov edx, dword [esp + 0x28]
xor eax, eax
inc eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x40], ecx
cmp edi, eax
je 0x47fdd0
cmp dword [esp + 0x80], 0
jne 0x47fdf1
mov ebp, dword [ebp + 0xa4]
movzx eax, byte [ebx - 1]
or ebp, dword [esp + 0x80]
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], ebp
jmp 0x47fdf5
mov ebp, dword [esp + 0x18]
jmp 0x47fdf9
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0xbc], 0
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], eax
je 0x47e646
mov ebx, dword [esp + 0x20]
and ebx, 0xfffffff7
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0x80], esi
mov dword [esp + 0xbc], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x8c], eax
jmp 0x4804d5
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
jmp 0x47e646
mov edi, dword [esp + 0x1c]
jmp 0x47e64a
add ecx, 4
mov dword [esp + 0x14], ecx
mov ebx, dword [ecx]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [ecx]
jmp 0x47fb47
xor ecx, ecx
xor ebp, ebp
inc ebp
mov ebx, ecx
mov ecx, ebp
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], ebx
test eax, eax
je 0x47fea6
mov eax, dword [esp + 0x5c]
test ebx, ebx
cmovne eax, ebp
mov dword [esp + 0x5c], eax
xor ebp, ebp
cmp ebx, ecx
mov ebx, dword [esp + 0x8c]
push 2
pop eax
cmove eax, ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x50]
test eax, eax
cmovne ebx, dword [esp + 0x18]
cmovne ebp, edi
mov edi, dword [esp + 0x90]
cmovne edi, dword [esp + 0x30]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x84]
cmovne ebp, edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x28], ebp
cmp esi, dword [esp + 0x114]
ja 0x47ff21
je 0x47ff4a
cmp esi, 0x80350000
je 0x47ff4a
cmp esi, 0x80360000
je 0x47ff59
cmp esi, 0x80380000
je 0x47ff4a
cmp esi, 0x80390000
jmp 0x47ff37
cmp esi, 0x803c0000
je 0x47ff59
cmp esi, 0x803e0000
je 0x47ff4a
cmp esi, 0x803f0000
je 0x47ff59
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x2c], eax
xor eax, eax
mov esi, eax
jmp 0x47ff53
xor eax, eax
mov dword [esp + 0x2c], eax
lea esi, [eax + 1]
mov dword [esp + 0x58], esi
jmp 0x47ff6c
mov eax, dword [esp + 0xec]
mov dword [esp + 0x2c], eax
xor eax, eax
mov esi, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x54]
mov ebp, eax
mov dword [esp + 0x44], ebp
mov dl, byte [eax]
movzx eax, dl
mov byte [esp + 0x8b], dl
cmp eax, 0x7e
ja 0x480445
je case.0x48046b.127
cmp eax, 0x70
ja 0x48015e
je 0x4802d6
mov ecx, eax
sub ecx, 0x1d
je 0x480084
sub ecx, 1
je 0x480084
sub ecx, 1
je 0x480084
sub ecx, 1
je 0x480084
sub ecx, 0x4e
je 0x4802d2
sub ecx, 1
mov ecx, dword [esp + 0x48]
je 0x4802d6
cmp dl, 0x17
jae 0x480ca8
xor eax, eax
inc eax
cmp ecx, eax
jne 0x480000
mov ebp, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebp
cmp dword [esp + 0x50], eax
je 0x4804b0
xor eax, eax
mov esi, eax
push 0x34
pop ebx
cmp dl, 0x10
je 0x480021
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebp
cmp dl, 0xf
jne 0x4800fd
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebp
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x70], edx
mov dword [esp + 0x10], edi
test eax, eax
je 0x4804b0
add dword [esp + 0x2c], ebx
mov ebp, dword [esp + 0x50]
test ebp, ebp
jne 0x4809a4
cmp eax, 0x10000
jne 0x480974
mov eax, dword [esp + 0x2c]
add al, 0x21
mov byte [edi], al
lea ebx, [edi + 1]
jmp 0x480aa2
mov ebp, dword [esp + 0x50]
xor esi, esi
inc esi
cmp dword [esp + 0x48], esi
jne 0x4800a1
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebx
cmp ebp, esi
je 0x4804ac
cmp dword [esp + 0x78], 0
mov ebx, dword [eax*4 + 0x78e374]
mov esi, dword [esp + 0x10]
je 0x48010a
lea ecx, [esi - 1]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x48010a
mov edx, dword [esp + 0xc0]
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, dl
je 0x4800c5
sub esi, ecx
lea eax, [esp + 0x138]
push esi
push ecx
push eax
call fcn.004b8970
mov eax, dword [esp + 0x80]
add esp, 0xc
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x18]
or dword [esp + 0x34], 0xffffffff
or edx, 0xffffffff
jmp 0x48003d
mov al, byte [esi - 1]
xor ecx, ecx
mov byte [esp + 0x138], al
mov dword [esp + 0x30], edi
lea esi, [ecx + 1]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x18], ecx
cmp dl, 0x1e
ja 0x4800f9
mov dword [esp + 0x18], ecx
xor ecx, ecx
inc ecx
mov dword [esp + 0x30], edi
cmp ebp, ecx
jbe 0x4800f9
movzx edi, al
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], edi
mov ebp, dword [eax + 0xa4]
mov dword [esp + 0x18], ebp
cmp dl, 0x1e
jne 0x4800fd
xor eax, eax
inc eax
or ebp, eax
mov dword [esp + 0x18], ebp
jmp 0x4800fd
sub eax, 0x71
je 0x4802d6
sub eax, 1
je 0x4802d6
sub eax, 1
je 0x4802d6
sub eax, 1
je 0x4802d6
sub eax, 1
jne case.0x48046b.135
mov eax, dword [esp + 0x50]
xor edx, edx
inc edx
cmp ecx, edx
jne 0x4801aa
cmp eax, edx
jne 0x4801aa
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebx
test esi, esi
je 0x4804ac
test eax, eax
je 0x480279
cmp eax, edx
jne 0x4801c2
cmp ecx, 0x10000
je 0x480279
cmp eax, ecx
lea esi, [eax - 1]
cmovne esi, eax
cmp dword [esp + 0x60], 0
je 0x480211
mov eax, esi
imul edi, esi, 3
imul dword [esp + 0x7c]
xor ecx, ecx
cmp edx, ecx
jg 0x480c9c
jl 0x4801f1
cmp eax, 0x7fffffff
ja 0x480c9c
mov edx, dword [esp + 0x60]
mov eax, 0x7fffffeb
mov ecx, dword [edx]
sub eax, ecx
cmp eax, edi
jb 0x480c9c
lea eax, [ecx + edi]
mov edi, dword [esp + 0x34]
mov dword [edx], eax
jmp 0x48024d
test esi, esi
jle 0x480255
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x7c]
push ebx
push eax
push ebp
call fcn.004b8970
mov eax, ebp
add esp, 0xc
add ebp, ebx
sub esi, 1
jne 0x480221
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebx
cmp eax, ecx
je 0x48039d
cmp ecx, 0x10000
je 0x480273
sub ecx, eax
mov dword [esp + 0x48], ecx
xor eax, eax
mov dword [esp + 0x50], eax
mov ebx, dword [esp + 0x54]
push dword [esp + 0x7c]
push ebx
lea eax, [ebx + 3]
push eax
call fcn.004b8970
add dword [esp + 0x1c], 6
add esp, 0xc
mov ecx, dword [esp + 0x48]
xor eax, eax
or dword [esp + 0x9c], 0xffffffff
mov dl, 0x86
mov word [ebx], 0x86
mov byte [ebx + 2], 6
mov word [ebx + 6], 0x79
mov byte [ebx + 8], 6
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x98], 9
jmp 0x480478
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x4802f1
mov esi, dword [esp + 0x54]
mov ebp, ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebp
jmp 0x4804b4
mov edx, dword [esp + 0x50]
xor esi, esi
inc esi
cmp ecx, esi
jne 0x48030e
mov dword [esp + 0x30], edi
mov ebp, ebx
mov dword [esp + 0x18], ebp
cmp edx, esi
je 0x4804b0
test edx, edx
jne 0x480339
cmp ecx, 0x10000
jne 0x480322
mov eax, dword [esp + 0x2c]
add al, 0x62
jmp 0x48032c
cmp ecx, esi
jne 0x48034d
mov eax, dword [esp + 0x2c]
add al, 0x66
mov ecx, dword [esp + 0x10]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x480389
cmp edx, esi
jne 0x48034d
cmp ecx, 0x10000
jne 0x48034d
mov eax, dword [esp + 0x2c]
add al, 0x64
jmp 0x48032c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x70]
add al, 0x68
mov byte [ecx], al
mov eax, edx
shr eax, 8
mov byte [ecx + 1], al
xor ecx, ecx
cmp dword [esp + 0x48], 0x10000
mov byte [ebp + 2], dl
cmovne ecx, dword [esp + 0x48]
mov eax, ecx
mov byte [ebp + 4], cl
shr eax, 8
mov byte [ebp + 3], al
lea eax, [ebp + 5]
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x58], 0
je 0x480ba3
movzx edx, byte [ebp]
cmp edx, 0x43
ja 0x480aef
je 0x4803df
mov eax, edx
sub eax, 0x1d
je 0x4803df
sub eax, 1
je 0x4803df
sub eax, 1
je 0x4803df
sub eax, 1
je 0x4803df
sub eax, 9
je 0x4803df
sub eax, dword [esp + 0xa8]
jne 0x48040f
movzx eax, byte [edx + 0x568228]
add ebp, eax
cmp dword [esp + 0x78], 0
mov ecx, ebp
mov dword [esp + 0x44], ebp
je 0x48040f
mov al, byte [ebp - 1]
cmp al, 0xc0
jb 0x48040f
movzx eax, al
and eax, 0x3f
movzx ebp, byte [eax + 0x5681e8]
add ebp, ecx
mov dword [esp + 0x44], ebp
sub ebx, ebp
test ebx, ebx
jle 0x4804ac
movzx eax, byte [ebp]
cmp eax, 0x76
jae 0x480b54
mov al, byte [eax + 0x54a0d8]
test al, al
je 0x480b54
mov byte [ebp], al
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
jmp 0x4804b8
cmp eax, dword [esp + 0x118]
ja case.0x48046b.135
je 0x480965
sub eax, 0x7f
cmp eax, 0xb
ja case.0x48046b.135
movzx eax, byte [eax + 0x480d15]
jmp dword [eax*4 + 0x480d0d]
mov ebx, dword [esp + 0x54]
xor eax, eax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x74]
sub edi, ebx
mov ebx, eax
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x4c], ebx
inc eax
cmp ecx, eax
jne 0x4804e9
cmp dword [esp + 0x50], eax
mov eax, dword [esp + 0x34]
jne 0x4804ed
cmp dword [esp + 0x58], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], esi
jne 0x4804ed
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x11c]
or dword [edx + 0xa4], eax
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], ecx
jmp 0x47e18a
mov eax, dword [esp + 0x34]
cmp dl, 0x8a
jne 0x480527
mov esi, dword [esp + 0x54]
cmp byte [esi + 3], 0x94
mov esi, dword [esp + 0x74]
jne 0x480541
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], esi
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x54]
cmp byte [ecx + eax], 0x78
jne 0x4804ac
mov ecx, dword [esp + 0x48]
cmp dl, 0x84
mov edx, dword [esp + 0x50]
jae 0x480545
cmp ecx, 0x10000
jne 0x480545
lea ecx, [edx + 1]
mov dword [esp + 0x48], ecx
jmp 0x480545
mov edx, dword [esp + 0x50]
test edx, edx
jne 0x48062f
xor eax, eax
inc eax
cmp ecx, eax
jbe 0x48059b
mov esi, dword [esp + 0xc4]
cmp ecx, esi
je 0x48059b
mov ebx, dword [esp + 0x54]
push edi
push ebx
lea eax, [ebx + 4]
push eax
call fcn.004b8970
mov al, byte [esp + 0x38]
add esp, 0xc
add dword [esp + 0x10], 4
sub al, 0x6a
mov ecx, dword [esp + 0x48]
mov byte [ebx], al
mov byte [ebx + 1], 0x86
add ebx, 2
xor eax, eax
mov dword [esp + 0x4c], ebx
mov word [ebx], ax
lea eax, [ebx + 2]
mov dword [esp + 0x54], eax
jmp 0x480609
mov ebp, dword [esp + 0x54]
push edi
push ebp
lea esi, [ebp + 1]
push esi
call fcn.004b8970
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x48]
inc ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x54], esi
test ecx, ecx
jne 0x4805e1
mov edi, dword [esp + 0x34]
mov esi, ebx
mov byte [ebp], 0xa6
mov ebp, dword [esp + 0x74]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebp
jmp 0x4804b8
mov al, byte [esp + 0x2c]
mov esi, dword [esp + 0xc4]
sub al, 0x6a
mov byte [ebp], al
xor eax, eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x10], ebx
mov ebx, eax
mov dword [esp + 0x70], ebp
mov dword [esp + 0x4c], ebx
cmp ecx, esi
je 0x48060e
dec ecx
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x18], eax
jmp 0x48071f
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], esi
cmp edx, 1
jbe 0x48070a
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x4806a1
lea eax, [edx - 1]
mov esi, eax
mul dword [esp + 0x98]
imul esi, dword [esp + 0x98]
test edx, edx
jg 0x480c9c
jl 0x480675
cmp eax, 0x7fffffff
ja 0x480c9c
mov ecx, dword [ecx]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, esi
jb 0x480c9c
lea eax, [ecx + esi]
mov ecx, dword [esp + 0x60]
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x18], eax
jmp 0x480702
cmp dword [esp + 0xa4], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], esi
je 0x4806d1
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], esi
cmp esi, dword [esp + 0x64]
jb 0x4806d1
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x10]
lea esi, [edx - 1]
mov ebx, dword [esp + 0x54]
push edi
push ebx
push ebp
call fcn.004b8970
add esp, 0xc
add ebp, edi
sub esi, 1
jne 0x4806dc
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0xc4]
cmp ecx, esi
je 0x480855
sub ecx, edx
mov dword [esp + 0x48], ecx
cmp ecx, esi
je 0x480855
mov esi, dword [esp + 0x60]
test esi, esi
je 0x4807d4
test ecx, ecx
je 0x4807d4
mov eax, dword [esp + 0x98]
add eax, 7
mov ecx, eax
imul ecx, dword [esp + 0x48]
mul dword [esp + 0x48]
sub ecx, 6
test edx, edx
jg 0x480c9c
jl 0x480768
cmp eax, 0x7fffffff
ja 0x480c9c
mov edx, dword [esi]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jb 0x480c9c
lea eax, [edx + ecx]
mov dword [esi], eax
mov edx, dword [esp + 0x10]
test ebx, ebx
je 0x48039d
mov esi, dword [esp + 0x4c]
mov ebx, edx
sub ebx, esi
inc ebx
sub edx, ebx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, ebx
sub esi, ecx
neg ecx
sbb ecx, ecx
sar eax, 8
and esi, ecx
mov ecx, dword [esp + 0x10]
mov byte [ecx], 0x79
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
add ecx, 3
mov byte [edx + 1], al
mov byte [edx + 2], bl
mov edx, ecx
mov dword [esp + 0x10], ecx
test esi, esi
jne 0x48078e
jmp 0x480391
xor esi, esi
inc esi
cmp ecx, esi
jb 0x48077e
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
sub al, 0x6a
mov dword [esp + 0x2c], eax
mov byte [edx], al
inc edx
mov dword [esp + 0x10], edx
cmp ecx, esi
je 0x480817
lea ecx, [edx + 1]
mov byte [edx], 0x86
mov eax, ecx
lea edx, [ecx + 2]
sub eax, ebx
mov dword [esp + 0x10], edx
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, ebx
mov byte [ecx + 1], bl
sar eax, 8
mov ebx, ecx
mov byte [ecx], al
push edi
push dword [esp + 0x58]
push edx
call fcn.004b8970
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x48]
add edx, edi
mov eax, dword [esp + 0x2c]
dec ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], ecx
cmp ecx, esi
jae 0x4807e9
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x4c], ebx
jmp 0x480782
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x58]
lea edi, [ebp - 3]
movzx ecx, byte [edi + 1]
mov esi, edi
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
sub esi, ecx
mov dl, byte [esi]
cmp dl, 0x84
jne 0x48088d
test ebx, ebx
je 0x480884
mov byte [esi], 0x86
add dl, 2
jmp 0x480896
cmp dl, 0x84
je 0x480958
cmp dl, 0x85
je 0x480958
cmp dword [esp + 0x60], 0
jne 0x4808cd
cmp dword [esp + 0x9c], 0
mov al, dl
jge 0x4808ae
lea eax, [edx + 5]
mov byte [esi], al
mov dl, al
cmp al, 0x8a
jne 0x4808cd
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + esi], 0x78
je 0x4808cd
mov byte [esi], 0x8f
add dl, 5
test ebx, ebx
je 0x480958
cmp dl, 0x8a
je 0x4808e8
cmp dl, 0x8f
je 0x4808e8
inc dl
mov byte [esi], dl
mov byte [edi], 0x7c
jmp 0x48093a
mov ebx, ebp
lea eax, [esi + 3]
sub ebx, esi
push ebx
push esi
push eax
call fcn.004b8970
add ebx, dword [esp + 0x88]
mov eax, 0x8c
add ebp, dword [esp + 0x88]
add esp, 0xc
cmp byte [esi], 0x8a
lea ecx, [eax - 5]
cmove eax, ecx
lea ecx, [ebp + 1]
mov byte [esi], al
mov eax, ebx
sar eax, 8
mov byte [ecx + 1], bl
mov byte [ecx], al
add ecx, 2
mov byte [ebp], 0x7c
mov byte [esi + 2], bl
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x10], ecx
mov byte [esi + 1], al
mov eax, dword [esp + 0x70]
test eax, eax
je 0x480945
mov byte [eax], 0x98
xor eax, eax
cmp dword [esp + 0x50], 2
cmovae eax, ebx
mov dword [esp + 0x58], eax
jmp 0x480391
mov eax, dword [esp + 0x2c]
add al, 0x7a
mov byte [edi], al
jmp 0x480391
mov ebp, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebp
jmp 0x4804b0
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x480986
mov eax, dword [esp + 0x2c]
add al, 0x25
jmp 0x48007a
mov ecx, dword [esp + 0x2c]
lea ebx, [edi + 3]
add cl, 0x27
shr eax, 8
mov byte [edi], cl
mov ecx, dword [esp + 0x48]
mov byte [edi + 1], al
mov byte [edi + 2], cl
jmp 0x480aa2
cmp ebp, 1
jne 0x4809eb
cmp eax, 0x10000
jne 0x4809bb
mov eax, dword [esp + 0x2c]
add al, 0x23
jmp 0x48007a
xor ebx, ebx
mov dword [esp + 0x10], ecx
inc ebx
cmp eax, ebx
je 0x4804ac
mov ebx, dword [esp + 0x2c]
add bl, 0x27
dec eax
shr eax, 8
mov byte [ecx], bl
lea ebx, [ecx + 3]
mov byte [ecx + 1], al
mov eax, dword [esp + 0x48]
dec al
mov byte [ecx + 2], al
jmp 0x480aa2
mov ecx, dword [esp + 0x50]
add bl, 0x29
mov byte [edi], bl
mov eax, ecx
mov ebx, dword [esp + 0x48]
shr eax, 8
mov byte [edi + 1], al
mov byte [edi + 2], cl
add edi, 3
mov dword [esp + 0x10], edi
cmp ebx, ecx
je 0x480a9e
test esi, esi
je 0x480a46
push esi
lea eax, [esp + 0x13c]
push eax
push edi
call fcn.004b8970
mov edx, dword [esp + 0x7c]
add esp, 0xc
add edi, esi
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x34]
cmp ebx, 0x10000
jne 0x480a6a
mov eax, dword [esp + 0x2c]
add al, 0x21
jmp 0x480a7b
mov al, byte [esp + 0x8b]
mov byte [edi], al
inc edi
mov dword [esp + 0x10], edi
test edx, edx
js 0x480a32
mov ecx, dword [esp + 0x34]
mov byte [edi], dl
mov byte [edi + 1], cl
add edi, 2
mov dword [esp + 0x10], edi
jmp 0x480a36
sub ebx, dword [esp + 0x50]
xor eax, eax
inc eax
cmp ebx, eax
mov eax, dword [esp + 0x2c]
jne 0x480a84
add al, 0x25
mov ebx, dword [esp + 0x10]
mov byte [ebx], al
inc ebx
jmp 0x480aa6
add al, 0x27
mov byte [edi], al
inc edi
mov eax, ebx
mov dword [esp + 0x10], edi
shr eax, 8
mov byte [edi + 1], bl
mov ebx, edi
mov byte [edi], al
add ebx, 2
jmp 0x480aa6
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
test esi, esi
je 0x480ad3
push esi
lea eax, [esp + 0x13c]
push eax
push ebx
call fcn.004b8970
add esp, 0xc
add ebx, esi
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x44]
jmp 0x4803a1
mov al, byte [esp + 0x8b]
mov byte [ebx], al
inc ebx
mov dword [esp + 0x10], ebx
test edx, edx
js 0x480ac2
mov byte [ebx], dl
mov byte [ebx + 1], cl
add ebx, 2
jmp 0x480abe
mov eax, edx
sub eax, 0x50
je 0x4803df
sub eax, dword [esp + 0xa8]
je 0x480b30
sub eax, 0x11
je 0x480b28
sub eax, 1
je 0x480b28
sub eax, 1
jne 0x48040f
movzx ecx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl ecx, 8
or ecx, eax
jmp 0x480409
add ebp, 0x21
jmp 0x48040b
mov al, byte [ebp + 3]
cmp al, 0x10
je 0x480b41
cmp al, 0xf
je 0x480b41
xor eax, eax
mov ecx, eax
jmp 0x480b44
push 2
pop ecx
movzx eax, byte [edx + 0x568228]
add eax, ecx
add ebp, eax
jmp 0x48040b
push ebx
lea eax, [ebp + 3]
push ebp
push eax
call fcn.004b8970
mov eax, dword [esp + 0x50]
add esp, 0xc
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x7c]
add ebx, dword [esp + 0x7c]
mov byte [eax], 0x84
mov byte [ecx], 0x79
lea eax, [ecx + 1]
mov ecx, ebx
mov byte [eax + 1], bl
sar ecx, 8
lea esi, [eax + 2]
mov byte [eax], cl
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], esi
mov byte [eax + 1], cl
mov eax, dword [esp + 0x44]
mov byte [eax + 2], bl
mov ecx, dword [esp + 0x14]
jmp 0x48043f
mov ecx, dword [esp + 0x3c]
jmp 0x48043b
cmp esi, ecx
mov ecx, dword [esp + 0x68]
sbb eax, eax
and eax, 0x22
add eax, 0x98
mov dword [ecx], eax
jmp 0x480cb2
mov eax, dword [esp + 0x68]
mov dword [eax], 0x73
mov dword [ebx + 0x54], edx
jmp 0x480cb2
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
mov dword [eax], 0xa1
mov eax, dword [esp + 0x6c]
add eax, edx
mov dword [ecx + 0x54], eax
jmp 0x480cb2
mov eax, dword [esp + 0x68]
mov dword [eax], 0x73
mov eax, dword [esp + 0x6c]
jmp 0x480be9
mov eax, dword [esp + 0x68]
mov dword [eax], 0x73
mov eax, dword [esp + 0x6c]
mov dword [edx + 0x54], eax
jmp 0x480cb2
mov eax, dword [esp + 0x120]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x128]
mov ebp, dword [esp + 0x1c]
mov dword [eax], esi
mov eax, dword [esp + 0x124]
mov dword [eax], ebp
mov eax, dword [esp + 0x30]
mov dword [edx], eax
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x18]
mov dword [edx], eax
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x134]
mov dword [eax], ecx
mov eax, dword [esp + 0xc8]
jmp 0x480cb4
mov eax, dword [esp + 0x68]
mov dword [eax], 0xc7
jmp 0x480cb2
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 0x68]
mov dword [eax], 0x9a
jmp 0x480cb2
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 0x68]
mov dword [eax], 0x7f
jmp 0x480cb2
mov eax, dword [esp + 0x68]
mov dword [eax], 0x78
jmp 0x480cb2
mov eax, dword [esp + 0x68]
mov dword [eax], 0x6e
xor eax, eax
mov ecx, dword [esp + 0x180]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b5ec4
add esp, 0x174
ret