Function at 0x849f40
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x15c
mov eax, dword [esp + 0x170]
mov dword [esp + 0x134], ecx
mov esi, dword [ecx]
mov dword [esp + 0xc0], 0
mov dword [esp + 0x13c], edx
mov ecx, dword [edx]
mov dword [esp + 0xc8], ecx
mov eax, dword [eax]
mov dword [esp + 8], eax
mov ecx, esi
and ecx, 0x800
mov dword [esp + 0x88], ecx
sete byte [esp + 0x5b]
mov dword [esp + 0x28], esi
mov edx, esi
shr edx, 9
and edx, 1
mov ebx, dword [esp + 0x194]
test ebx, ebx
setne cl
mov esi, dword [esp + 0x190]
mov edi, ebx
je 0x849fb9
lea edi, [esp + 0xc0]
mov dword [esp + 0x138], edi
mov edi, dword [esp + 0x88]
shr edi, 0xb
mov dword [esp + 0x94], edi
mov dword [esp + 0xd8], edx
xor edx, 1
mov dword [esp + 0xf0], edx
xor edx, edx
mov dl, cl
mov ecx, dword [esp + 0x28]
and ecx, 1
mov dword [esp + 0xb4], ecx
or edx, 2
mov dword [esp + 0xec], edx
lea ecx, [esi + 0x88]
mov dword [esp + 0xbc], ecx
lea ecx, [esi + 0x64]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x30], 0xfffffffe
mov dword [esp + 0x38], 0
mov dword [esp + 0x84], 0
mov edi, 0
mov dword [esp + 0x60], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x2c], 0
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xb8], ecx
mov edx, ecx
mov dword [esp + 0xdc], 0
mov dword [esp + 0x54], 0xfffffffe
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x18], 0xfffffffe
mov dword [esp + 0x1c], 0xfffffffe
mov dword [esp + 0x24], 0
mov dword [esp + 0x40], 0
jmp 0x84a0bb
mov eax, dword [esp + 8]
add eax, 2
mov dword [esp + 8], eax
mov dword [esp + 4], edx
jmp 0x84a0e0
add ecx, 0xe
mov dword [esp + 8], eax
mov dword [esp + 0x60], ecx
jmp 0x84a0e0
mov eax, str._b__w_
jmp 0x84a0c1
movzx eax, word [eax]
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x84a0f9
test ax, ax
jne 0x84a0f9
mov dword [esp + 8], ecx
movzx eax, word [ecx]
xor ecx, ecx
mov dword [esp + 0x60], ecx
test ebx, ebx
je 0x84a1a0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x3c]
lea esi, [ecx + edx*2 - 0xc8]
mov ebp, dword [esp + 4]
cmp ebp, esi
mov esi, ebp
ja 0x84f378
mov ecx, dword [esp + 0xb8]
cmp esi, ecx
jb 0x84a12d
mov ecx, esi
mov edx, dword [ebx]
mov ebp, 0x7fffffeb
sub ebp, edx
mov esi, ecx
sub esi, dword [esp + 0xb8]
sar esi, 1
cmp ebp, esi
jl 0x84f40e
add edx, esi
mov dword [ebx], edx
test edi, edi
je 0x84a1c0
mov edx, edi
sub edx, dword [esp + 0xc8]
jbe 0x84a1c9
mov esi, ecx
sub esi, edi
je 0x84a17b
mov ebp, dword [esp + 0xc8]
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edi]
inc edi
mov byte [ebp], bl
inc ebp
dec esi
jne 0x84a170
sub ecx, edx
mov edi, dword [esp + 0xc8]
mov dword [esp + 0xb8], ecx
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0x194]
jmp 0x84a1d4
mov ecx, dword [esi + 0x3c]
add ecx, ecx
add ecx, dword [esi + 0x10]
cmp dword [esi + 0x20], ecx
jbe 0x84a1db
jmp 0x84f397
xor edi, edi
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xb8], ecx
mov dword [esp + 4], ecx
mov esi, dword [esp + 0x190]
movzx ecx, ax
test cx, cx
je 0x84a21a
cmp ecx, 0x5c
jne 0x84a1f9
mov eax, dword [esp + 8]
movzx edx, word [eax + 2]
cmp edx, 0x45
je 0x84a6d5
cmp dword [esp + 0x2c], 0
jne 0x84a600
cmp ecx, 0x5c
jne 0x84a21a
mov eax, dword [esp + 8]
movzx edx, word [eax + 2]
cmp edx, 0x51
je 0x84a6e6
test byte [esp + 0x28], 8
je 0x84a39b
cmp ecx, 0xff
ja 0x84a39b
mov ebp, dword [esp + 8]
mov edx, dword [esi + 0xc]
lea eax, [ebp + 2]
nop
nop
nop
nop
nop
test byte [edx + ecx], 1
je 0x84a260
mov dword [esp + 8], eax
movzx ecx, word [eax]
add eax, 2
cmp ecx, 0x100
jb 0x84a240
jmp 0x84a390
cmp ecx, 0x23
jne 0x84a390
mov dword [esp + 8], eax
mov cx, word [eax]
test cx, cx
je 0x84a372
nop
nop
nop
nop
nop
nop
nop
mov edx, esi
mov esi, dword [edx + 0x1c]
mov edx, dword [edx + 0x84]
test edx, edx
je 0x84a2d0
cmp eax, esi
jae 0x84a330
sub esp, 0xc
push dword [esp + 0xa0]
push dword [esp + 0xcc]
push esi
push edx
push eax
call fcn.00860ec0
add esp, 0x20
test eax, eax
jne 0x84a527
mov esi, dword [esp + 8]
jmp 0x84a332
mov edx, dword [esp + 0xbc]
mov edx, dword [edx]
lea ebx, [edx + edx]
sub esi, ebx
cmp eax, esi
jbe 0x84a2ed
mov esi, eax
mov ebx, dword [esp + 0x194]
jmp 0x84a332
mov esi, dword [esp + 0x190]
cmp cx, word [esi + 0x8c]
mov ebx, dword [esp + 0x194]
jne 0x84a330
cmp edx, 1
je 0x84a53f
movzx ecx, word [eax + 2]
cmp cx, word [esi + 0x8e]
mov esi, eax
jne 0x84a332
jmp 0x84a544
mov esi, eax
lea eax, [esi + 2]
cmp dword [esp + 0x88], 0
mov dword [esp + 8], eax
je 0x84a35f
movzx ecx, word [eax]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x84a362
add esi, 4
mov dword [esp + 8], esi
mov eax, esi
mov cx, word [eax]
test cx, cx
mov esi, dword [esp + 0x190]
jne 0x84a280
mov ecx, 0x23
cmp eax, ebp
ja 0x84a0e0
jmp 0x84a39b
add eax, 0xfffffffe
cmp eax, ebp
ja 0x84a0e0
xor eax, eax
cmp ecx, 0x3e
jg 0x84a458
lea edx, [ecx - 0x2a]
cmp edx, 2
jb 0x84a4c3
cmp ecx, 0x28
jne 0x84a5a8
mov eax, dword [esp + 8]
movzx edx, word [eax + 2]
cmp edx, 0x3f
jne 0x84a3d5
movzx edx, word [eax + 4]
cmp edx, 0x23
je 0x84b727
xor eax, eax
cmp dword [esp + 0x60], 0
jne 0x84a5b3
cmp dword [esp + 0x84], 0
je 0x84a5b3
test al, al
jne 0x84a5b3
mov edx, dword [esp + 0xdc]
test edx, edx
lea edx, [edx - 1]
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x84]
jg 0x84a419
mov edx, 0
jg 0x84a536
test ebx, ebx
jne 0x84a536
mov edx, dword [esp + 8]
sub edx, dword [esi + 0x18]
shr edx, 1
mov ebp, dword [esp + 0x84]
movzx esi, word [ebp + 4]
sub edx, esi
mov esi, dword [esp + 0x190]
mov word [ebp + 6], dx
mov dword [esp + 0x84], 0
jmp 0x84a5b3
cmp ecx, 0x3f
je 0x84a4c3
cmp ecx, 0x7b
jne 0x84a5a8
mov eax, dword [esp + 8]
movzx edx, word [eax + 2]
add edx, 0xffffffd0
movzx esi, dx
xor edx, edx
cmp esi, 9
ja 0x84a59c
add eax, 6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax - 2]
lea esi, [edx - 0x30]
movzx esi, si
add eax, 2
cmp esi, 0xa
jb 0x84a490
movzx esi, dx
cmp esi, 0x2c
je 0x84a564
mov edx, 1
cmp esi, 0x7d
je 0x84a59c
xor edx, edx
jmp 0x84a59c
mov al, 1
cmp ecx, 0x7c
ja case.0x84a4ce.1
jmp dword [ecx*4 + 0x84f770]
mov eax, dword [esp + 8]
add eax, 2
sub esp, 4
push 6
push 0x8911bc
push eax
call fcn.00861180
add esp, 0x10
test eax, eax
mov ecx, dword [esp + 8]
je 0x84a0ce
add ecx, 2
sub esp, 4
push 6
push str._:_:__
push ecx
call fcn.00861180
add esp, 0x10
test eax, eax
jne 0x84a6fe
mov eax, str._b___w_
mov ecx, dword [esp + 8]
jmp 0x84a0c1
mov eax, dword [esp + 0xbc]
mov edx, dword [eax]
mov eax, dword [esp + 8]
jmp 0x84a544
mov dword [esp + 0x84], edx
jmp 0x84a5b3
mov edx, 1
lea eax, [eax + edx*2]
mov dword [esp + 8], eax
mov ecx, 0x23
mov esi, dword [esp + 0x190]
cmp eax, ebp
ja 0x84a0e0
jmp 0x84a39b
movzx esi, word [eax - 2]
mov edx, 1
cmp esi, 0x7d
je 0x84a59c
add esi, 0xffffffd0
movzx esi, si
xor edx, edx
cmp esi, 9
ja 0x84a59c
nop
movzx edx, word [eax]
lea esi, [edx - 0x30]
movzx esi, si
add eax, 2
cmp esi, 0xa
jb 0x84a580
movzx eax, dx
xor edx, edx
cmp eax, 0x7d
sete dl
test edx, edx
setne al
mov esi, dword [esp + 0x190]
cmp dword [esp + 0x60], 0
je 0x84a3e2
mov edx, dword [esp + 0x28]
test dh, 0x40
sete dl
cmp dword [esp + 0x60], 0
jne 0x84a5f4
or dl, al
jne 0x84a5f4
mov edx, dword [esp + 8]
mov ebp, dword [esp + 4]
mov dword [ebp], 0xff0076
sub edx, dword [esi + 0x18]
shr edx, 1
mov word [ebp + 4], dx
mov word [ebp + 6], 0
mov dword [esp + 0x84], ebp
lea ebp, [ebp + 8]
mov dword [esp + 4], ebp
cmp ecx, 0x7c
jbe switch.0x0084a4ce
jmp case.0x84a4ce.1
test ebx, ebx
jne 0x84a628
cmp dword [esp + 0x84], 0
je 0x84a628
mov eax, dword [esp + 8]
sub eax, dword [esi + 0x18]
shr eax, 1
mov edi, dword [esp + 0x84]
movzx edx, word [edi + 4]
sub eax, edx
mov word [edi + 6], ax
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x28]
test ah, 0x40
je case.0x84a4ce.1
mov eax, dword [esp + 8]
mov edx, dword [esp + 4]
mov dword [edx], 0xff0076
sub eax, dword [esi + 0x18]
shr eax, 1
mov word [edx + 4], ax
mov word [edx + 6], 0
mov dword [esp + 0x84], edx
lea eax, [edx + 8]
mov dword [esp + 4], eax
cmp dword [esp + 0x88], 0
mov word [esp + 0x120], cx
mov eax, 1
je 0x84ba4c
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x84ba4c
mov ecx, dword [esp + 8]
movzx edx, word [ecx + 2]
mov esi, edx
and esi, 0xfc00
mov eax, 1
cmp esi, 0xdc00
jne 0x84a6c5
add ecx, 2
mov dword [esp + 8], ecx
mov word [esp + 0x122], dx
mov eax, 2
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x190]
jmp 0x84ba50
add eax, 2
mov dword [esp + 8], eax
mov dword [esp + 0x2c], 0
jmp 0x84a6f5
add eax, 2
mov dword [esp + 8], eax
mov dword [esp + 0x2c], 1
mov ebp, dword [esp + 4]
jmp 0x84c358
mov eax, dword [esi + 0x20]
sub eax, dword [esi + 0x10]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 8]
movzx eax, word [ecx + 2]
mov edx, eax
add edx, 0xffffffd2
movzx esi, dx
cmp esi, 0xf
ja 0x84a789
mov esi, 0x9001
bt esi, edx
jae 0x84a789
lea edx, [ecx + 4]
jmp 0x84a733
add edx, 2
movsx ebx, word [edx]
movzx esi, bx
cmp ebx, 0x5b
jg 0x84a750
cmp esi, 0x5b
jne 0x84a76c
cmp word [edx + 2], ax
jne 0x84a771
jmp 0x84a789
cmp esi, 0x5c
jne 0x84a784
movzx esi, word [edx + 2]
and esi, 0xfffe
cmp esi, 0x5c
jne 0x84a771
add edx, 2
add edx, 2
jmp 0x84a733
test bx, bx
je 0x84a789
cmp bx, ax
jne 0x84a730
movzx esi, word [edx + 2]
cmp esi, 0x5d
jne 0x84a730
jmp 0x84f435
cmp esi, 0x5d
jne 0x84a771
sar dword [esp + 0x38], 1
xor ebp, ebp
jmp 0x84a7a8
mov ax, word [edx + 2]
mov ecx, edx
mov ebp, esi
lea edx, [ecx + 2]
mov dword [esp + 8], edx
movzx ebx, ax
cmp ebx, 0x5c
jne 0x84a7d0
movzx eax, word [ecx + 4]
add ecx, 4
cmp eax, 0x45
jne 0x84a7f0
mov dword [esp + 8], ecx
mov edx, ecx
mov esi, ebp
jmp 0x84a7a0
test ebp, ebp
jne 0x84a816
mov esi, 1
movzx ecx, ax
cmp ecx, 0x5e
je 0x84a7a0
jmp 0x84a816
sub esp, 4
push 3
push 0x8911f2
push ecx
call fcn.00861180
add esp, 0x10
test eax, eax
jne 0x84a87a
mov edx, dword [esp + 8]
add edx, 6
mov dword [esp + 8], edx
mov esi, ebp
jmp 0x84a7a0
cmp ebx, 0x5d
jne 0x84a8e1
mov esi, dword [esp + 0x190]
test byte [esi + 0x63], 2
mov ecx, dword [esp + 0x60]
je 0x84a88a
test ebp, ebp
mov ax, 0x9d
je 0x84a83c
mov ax, 0xd
mov ecx, dword [esp + 4]
mov word [ecx], ax
mov eax, dword [esp + 0x1c]
cmp eax, 0xfffffffe
mov ecx, 0xffffffff
mov ebx, dword [esp + 0x194]
je 0x84a85a
mov ecx, eax
mov eax, dword [esp + 4]
mov edi, eax
lea eax, [eax + 2]
mov ebp, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ecx
jmp 0x84c358
mov ebx, 0x5c
mov esi, dword [esp + 0x190]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xa4], ebp
mov eax, dword [esp + 4]
lea edi, [eax + 6]
mov dword [esp + 0x48], edi
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
jmp 0x84a94a
mov ecx, dword [esp + 4]
lea edi, [ecx + 6]
mov dword [esp + 0x48], edi
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
test ax, ax
mov esi, dword [esp + 0x190]
mov ecx, dword [esp + 0x60]
je 0x84bcf0
mov dword [esp + 0xa4], ebp
mov eax, dword [esp + 0x28]
mov edx, eax
and edx, 1
mov dword [esp + 0x90], edx
and eax, 0x800
cmp eax, 1
sbb eax, eax
or eax, 0x10ffff
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x34], 0
xor eax, eax
mov dword [esp + 0x14], edi
jmp 0x84b210
mov esi, dword [esp + 0x190]
movzx eax, word [edx - 6]
cmp eax, 0x51
jne 0x84aa0a
lea eax, [edx - 4]
mov dword [esp + 8], eax
movzx ebp, word [edx - 4]
cmp ebp, 0x5c
jne 0x84aa11
movzx eax, word [edx - 2]
cmp eax, 0x45
jne 0x84aa2c
mov dword [esp + 8], edx
movzx ebp, word [edx]
add edx, 8
cmp ebp, 0x5c
je 0x84a99f
add edx, 0xfffffff8
mov dword [esp + 0x2c], 0
jmp 0x84aa1c
mov esi, dword [esp + 0x190]
jmp 0x84aa43
mov eax, dword [esp + 0x174]
mov dword [eax], 0x1f
mov ecx, 6
xor ebp, ebp
mov edi, edx
cmp ecx, 0x12
jne 0x84afcc
jmp 0x84afd4
add edx, 0xfffffff8
xor ecx, ecx
jmp 0x84aa34
add edx, 0xfffffffc
mov dword [esp + 0x2c], 1
mov eax, edx
test bp, bp
jne 0x84b635
jmp 0x84b659
add edx, 0xfffffffc
mov ecx, 1
mov eax, edx
mov dword [esp + 0x2c], ecx
test ecx, ecx
setne dl
mov bp, 0x5c
movzx ebp, bp
cmp dword [esp + 0x88], 0
mov dword [esp + 0x100], ebp
je 0x84aa8f
mov ecx, ebp
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x84aa8f
shl ebp, 0xa
and ebp, 0xffc00
movzx ecx, word [eax + 2]
add eax, 2
and ecx, 0x3ff
lea ebp, [ebp + ecx + 0x10000]
mov dword [esp + 0x100], ebp
mov dword [esp + 8], eax
test dl, dl
jne 0x84afa3
cmp ebp, 0x5b
je 0x84aae9
cmp ebp, 0x5c
jne 0x84afa3
lea ecx, [esp + 8]
lea edx, [esp + 0x100]
push 1
push dword [esp + 0x2c]
push dword [esi + 0x40]
mov eax, dword [esp + 0x180]
mov esi, eax
push esi
call fcn.00850290
add esp, 0x10
mov ecx, 6
cmp dword [esi], 0
mov ebp, dword [esp + 0x2c]
je 0x84acb3
mov esi, dword [esp + 0x190]
jmp 0x84afc1
movzx ecx, word [eax + 2]
mov ebp, 0x5b
lea edx, [ecx - 0x2e]
movzx esi, dx
cmp esi, 0xf
ja 0x84af9c
mov esi, 0x9001
bt esi, edx
mov esi, dword [esp + 0x190]
jae 0x84afa3
add eax, 4
jmp 0x84ab1e
add eax, 2
movsx edx, word [eax]
mov ebp, 0x5b
movzx esi, dx
cmp edx, 0x5b
jg 0x84ab45
cmp esi, 0x5b
jne 0x84ab68
cmp word [eax + 2], cx
mov esi, dword [esp + 0x190]
jne 0x84ab89
jmp 0x84ad79
cmp esi, 0x5c
jne 0x84ab79
movzx esi, word [eax + 2]
and esi, 0xfffe
cmp esi, 0x5c
mov esi, dword [esp + 0x190]
jne 0x84ab89
add eax, 2
add eax, 2
jmp 0x84ab1e
test dx, dx
mov esi, dword [esp + 0x190]
jne 0x84ab89
jmp 0x84afa3
cmp esi, 0x5d
mov esi, dword [esp + 0x190]
je 0x84afa3
cmp dx, cx
jne 0x84ab1b
movzx edx, word [eax + 2]
cmp edx, 0x5d
jne 0x84ab1b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x53
jmp 0x84afb8
test ebx, ebx
js 0x84b50e
xor edi, edi
cmp ebx, 3
jl 0x84abba
mov edi, ebx
cmp dword [esp + 0x90], 0
mov esi, dword [esp + 0x190]
jne 0x84abcd
mov edi, ebx
test dword [esp + 0x28], 0x20000000
mov ebx, dword [esp + 0xb0]
jne 0x84aff1
shl edi, 2
mov eax, dword [edi + edi*2 + 0x891268]
mov edx, edi
mov edi, dword [esp + 0xac]
mov ecx, dword [edi + eax + 0x1c]
mov dword [esp + 0x11c], ecx
mov ecx, dword [edi + eax + 0x18]
mov dword [esp + 0x118], ecx
mov ecx, dword [edi + eax + 0x14]
mov dword [esp + 0x114], ecx
mov ecx, dword [edi + eax + 0x10]
mov dword [esp + 0x110], ecx
mov ecx, dword [edi + eax + 0xc]
mov dword [esp + 0x10c], ecx
mov ecx, dword [edi + eax + 8]
mov dword [esp + 0x108], ecx
mov ecx, dword [edi + eax]
mov eax, dword [edi + eax + 4]
mov dword [esp + 0x104], eax
mov dword [esp + 0x100], ecx
mov ecx, dword [edx + edx*2 + 0x89126c]
mov eax, dword [edx + edx*2 + 0x891270]
test ecx, ecx
js 0x84ac8c
add edi, ecx
xor ecx, ecx
test eax, eax
js 0x84ac79
movzx edx, byte [edi + ecx]
or byte [esp + ecx + 0x100], dl
inc ecx
cmp ecx, 0x20
jne 0x84ac66
jmp 0x84ac8c
movzx edx, byte [edi + ecx]
not dl
and byte [esp + ecx + 0x100], dl
inc ecx
cmp ecx, 0x20
jne 0x84ac79
mov ecx, eax
sar ecx, 0x1f
add eax, ecx
xor eax, ecx
cmp eax, 1
je 0x84b091
cmp eax, 2
jne 0x84b09f
mov al, 0x7f
mov ecx, 0xb
jmp 0x84b098
cmp eax, 5
je 0x84af8c
test eax, eax
mov esi, dword [esp + 0x190]
jne 0x84afdd
mov ebp, dword [esp + 0x100]
cmp ebp, ebx
jb 0x84afab
jmp 0x84ad86
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
sub esp, 4
lea ecx, [esp + 0xc]
lea edx, [esp + 0x104]
push dword [esp + 0x178]
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.00850d70
add esp, 0x10
test eax, eax
je 0x84b053
xor ecx, ecx
cmp ebp, 0x10
sete cl
xor eax, eax
cmp dword [esp + 0x100], ecx
sete al
add eax, 3
mov ecx, dword [esp + 0x48]
mov word [ecx], ax
movzx eax, word [esp + 0xd0]
mov word [ecx + 2], ax
movzx eax, word [esp + 0xcc]
lea edx, [ecx + 6]
mov dword [esp + 0x48], edx
mov word [ecx + 4], ax
mov ecx, 0x12
mov dword [esp + 0x3c], 1
jmp 0x84b05e
mov ebp, 0x5b
cmp ebp, ebx
jb 0x84afab
je 0x84b65d
cmp ebp, 0xd
je 0x84ad96
cmp ebp, 0xa
jne 0x84ada1
mov eax, dword [esp + 0xc4]
or byte [eax + 1], 8
lea ecx, [esp + 0x64]
lea edx, [esp + 0x48]
push ebp
push ebx
push esi
push dword [esp + 0x34]
call fcn.00851320
add esp, 0x10
add dword [esp + 0x20], eax
mov ecx, 0x12
mov eax, 2
mov ebp, dword [esp + 0x2c]
jmp 0x84afc5
xor ecx, ecx
movzx edx, byte [eax + ecx + 0x40]
not dl
or byte [esp + ecx + 0x64], dl
inc ecx
xor ebp, ebp
cmp ecx, 0x20
jne 0x84add1
jmp 0x84ae43
xor ecx, ecx
movzx edx, byte [eax + ecx + 0x40]
or byte [esp + ecx + 0x64], dl
inc ecx
xor ebp, ebp
cmp ecx, 0x20
jne 0x84ade8
jmp 0x84af7d
xor ecx, ecx
movzx edx, byte [eax + ecx]
not dl
or byte [esp + ecx + 0x64], dl
inc ecx
xor ebp, ebp
cmp ecx, 0x20
jne 0x84ae00
jmp 0x84ae43
xor ecx, ecx
movzx edx, byte [eax + ecx]
or byte [esp + ecx + 0x64], dl
inc ecx
xor ebp, ebp
cmp ecx, 0x20
jne 0x84ae16
jmp 0x84af7d
xor ecx, ecx
movzx edx, byte [eax + ecx + 0xa0]
not dl
or byte [esp + ecx + 0x64], dl
inc ecx
xor ebp, ebp
cmp ecx, 0x20
jne 0x84ae2d
mov dword [esp + 0x34], 1
jmp 0x84af7d
xor ecx, ecx
movzx edx, byte [eax + ecx + 0xa0]
or byte [esp + ecx + 0x64], dl
inc ecx
xor ebp, ebp
cmp ecx, 0x20
jne 0x84ae52
jmp 0x84af7d
test byte [esp + 0x28], 0x40
jne 0x84f64e
mov eax, dword [esp + 8]
movzx ebx, word [eax]
jmp case.0x84b3e6.5
mov ebp, dword [str._9]
test ebp, ebp
je 0x84b0f6
lea eax, [ebp - 1]
lea ecx, [esp + 0x64]
lea edx, [esp + 0x48]
push eax
push 0
push esi
push dword [esp + 0x34]
call fcn.00851320
add esp, 0x10
cmp ebp, 0xffffffff
jne 0x84b0f8
jmp 0x84af7b
mov eax, dword [str._9]
cmp eax, 0xffffffff
je 0x84af7b
mov dword [esp + 0x2c], ebx
mov ebx, str._9
mov ecx, eax
inc ecx
cmp ecx, dword [ebx + 4]
lea ebx, [ebx + 4]
je 0x84aed2
lea ecx, [esp + 0x64]
lea edx, [esp + 0x48]
push dword [ebx - 4]
push eax
push esi
push dword [esp + 0x34]
call fcn.00851320
add esp, 0x10
mov eax, dword [ebx]
xor ebp, ebp
cmp eax, 0xffffffff
jne 0x84aed0
jmp 0x84b18e
mov ebp, dword [0x8928f8]
test ebp, ebp
je 0x84b142
lea eax, [ebp - 1]
lea ecx, [esp + 0x64]
lea edx, [esp + 0x48]
push eax
push 0
push esi
push dword [esp + 0x34]
call fcn.00851320
add esp, 0x10
cmp ebp, 0xffffffff
jne 0x84b144
jmp 0x84af7b
mov eax, dword [0x8928f8]
cmp eax, 0xffffffff
je 0x84af7b
mov dword [esp + 0x2c], ebx
mov ebx, 0x8928f8
mov ecx, eax
inc ecx
cmp ecx, dword [ebx + 4]
lea ebx, [ebx + 4]
je 0x84af4b
lea ecx, [esp + 0x64]
lea edx, [esp + 0x48]
push dword [ebx - 4]
push eax
push esi
push dword [esp + 0x34]
call fcn.00851320
add esp, 0x10
mov eax, dword [ebx]
xor ebp, ebp
cmp eax, 0xffffffff
jne 0x84af49
jmp 0x84b18e
xor ebp, ebp
mov dword [esp + 0xc], edi
mov eax, ebx
mov dword [esp + 0x20], eax
jmp case.0x84b3e6.25
mov dword [esp + 0x100], 8
mov ebp, 8
mov esi, dword [esp + 0x190]
cmp ebp, ebx
jae 0x84ad86
mov eax, dword [esp + 0x174]
mov dword [eax], 8
mov ecx, 6
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov edi, eax
cmp ecx, 0x12
je 0x84afd4
test ecx, ecx
jne 0x84c7b8
mov dword [esp + 0xc], edi
jmp case.0x84b3e6.25
mov eax, dword [esp + 0x174]
mov dword [eax], 0x53
mov ecx, 6
jmp 0x84afc1
test ebx, ebx
mov eax, ebx
je 0x84affc
mov eax, 0xe
add eax, edi
mov ecx, 0x62bd8af
bt ecx, eax
mov edx, dword [esp + 0xc]
jb 0x84b06e
lea eax, [edi - 8]
cmp eax, 2
ja 0x84b19f
add eax, 0xb
add ebx, 3
mov ecx, dword [esp + 0x48]
mov word [ecx], bx
mov word [ecx + 2], ax
lea eax, [ecx + 6]
mov dword [esp + 0x48], eax
mov word [ecx + 4], 0
mov eax, dword [esp + 0x8c]
mov dword [esp + 8], eax
mov ecx, 0x12
mov dword [esp + 0x3c], 1
jmp 0x84a9f8
mov ecx, 6
mov eax, ebx
mov dword [esp + 0x20], eax
xor ebp, ebp
cmp ecx, 0x12
jne 0x84afcc
jmp 0x84afd4
mov eax, dword [eax*4 + 0x8911f8]
add eax, 0xfffffffe
mov dword [esp + 8], eax
mov ecx, 0x12
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x60], eax
jmp 0x84a9f8
mov al, 0xc3
mov ecx, 1
and byte [esp + ecx + 0x100], al
xor eax, eax
test ebx, ebx
je 0x84b0c2
mov edx, dword [esp + 0x8c]
movzx ecx, byte [esp + eax + 0x100]
not cl
or byte [esp + eax + 0x64], cl
inc eax
cmp eax, 0x20
jne 0x84b0ac
jmp 0x84b0db
mov edx, dword [esp + 0x8c]
movzx ecx, byte [esp + eax + 0x100]
or byte [esp + eax + 0x64], cl
inc eax
cmp eax, 0x20
jne 0x84b0c9
mov dword [esp + 8], edx
mov ecx, 0x12
mov edx, 2
mov dword [esp + 0x20], 1
jmp 0x84a9f8
xor ebp, ebp
mov dword [esp + 0x2c], ebx
mov ebx, 0x8928ac
jmp 0x84b108
add ebx, 4
mov ebp, eax
mov eax, dword [ebx]
inc ebp
cmp eax, ebp
je 0x84b103
cmp eax, 0xffffffff
mov esi, dword [esp + 0x44]
je 0x84b11b
dec eax
mov esi, eax
lea ecx, [esp + 0x64]
lea edx, [esp + 0x48]
push esi
push ebp
mov esi, dword [esp + 0x198]
push esi
push dword [esp + 0x34]
call fcn.00851320
add esp, 0x10
mov eax, dword [ebx]
cmp eax, 0xffffffff
jne 0x84b103
jmp 0x84b18c
xor ebp, ebp
mov dword [esp + 0x2c], ebx
mov ebx, 0x8928fc
jmp 0x84b154
add ebx, 4
mov ebp, eax
mov eax, dword [ebx]
inc ebp
cmp eax, ebp
je 0x84b14f
cmp eax, 0xffffffff
mov esi, dword [esp + 0x44]
je 0x84b167
dec eax
mov esi, eax
lea ecx, [esp + 0x64]
lea edx, [esp + 0x48]
push esi
push ebp
mov esi, dword [esp + 0x198]
push esi
push dword [esp + 0x34]
call fcn.00851320
add esp, 0x10
mov eax, dword [ebx]
cmp eax, 0xffffffff
jne 0x84b14f
xor ebp, ebp
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
jmp case.0x84b3e6.25
test ebx, ebx
je 0x84abe2
cmp dword [esp + 0x10], 0
jne 0x84b1bb
movzx eax, word [ebp + 4]
cmp eax, 0x5d
je 0x84abe2
mov eax, dword [esp + 0x48]
lea ecx, [eax + 2]
mov dword [esp + 0x48], ecx
mov word [eax], 2
sub esp, 8
push ecx
push pe_nt_image_headers32
call fcn.00861040
add esp, 0x10
add eax, eax
add eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
sub esp, 8
push eax
push 0x10ffff
call fcn.00861040
add esp, 0x10
add eax, eax
add dword [esp + 0x48], eax
jmp 0x84abe2
mov dword [esp + 0x60], ecx
cmp dword [esp + 0x88], 0
je 0x84b266
mov ecx, ebx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x84b266
mov ecx, dword [esp + 8]
movzx ebx, word [ecx]
mov edx, ebx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x84b266
shl ebx, 0xa
and ebx, 0xffc00
movzx edx, word [ecx + 2]
add ecx, 2
and edx, 0x3ff
lea ebx, [ebx + edx + 0x10000]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x48]
cmp ecx, edi
mov edx, 1
ja 0x84b275
mov edx, eax
cmp dword [esp + 0x194], 0
je 0x84b292
sub ecx, edi
jbe 0x84b292
sar ecx, 1
mov eax, dword [esp + 0x194]
add dword [eax], ecx
mov dword [esp + 0x48], edi
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x10], edx
je 0x84b2ca
cmp ebx, 0x5c
jne case.0x84b3e6.5
mov eax, dword [esp + 8]
movzx ecx, word [eax + 2]
mov ebx, 0x5c
cmp ecx, 0x45
jne case.0x84b3e6.5
add eax, 2
mov dword [esp + 8], eax
xor ebp, ebp
jmp case.0x84b3e6.25
cmp ebx, 0x5c
je 0x84b3a4
cmp ebx, 0x5b
jne case.0x84b3e6.5
mov eax, dword [esp + 8]
movzx ecx, word [eax + 2]
mov ebx, 0x5b
lea edx, [ecx - 0x2e]
movzx esi, dx
cmp esi, 0xf
ja 0x84b537
mov esi, 0x9001
bt esi, edx
mov esi, dword [esp + 0x190]
jae case.0x84b3e6.5
lea edi, [eax + 4]
mov ebp, edi
jmp 0x84b323
add ebp, 2
movsx edx, word [ebp]
mov ebx, 0x5b
movzx esi, dx
cmp edx, 0x5b
jg 0x84b350
cmp esi, 0x5b
jne 0x84b370
cmp word [ebp + 2], cx
mov esi, dword [esp + 0x190]
jne 0x84b380
jmp 0x84b530
cmp esi, 0x5c
jne 0x84b393
movzx esi, word [ebp + 2]
and esi, 0xfffe
cmp esi, 0x5c
mov esi, dword [esp + 0x190]
jne 0x84b380
add ebp, 2
jmp 0x84b320
test dx, dx
mov esi, dword [esp + 0x190]
je case.0x84b3e6.5
cmp dx, cx
jne 0x84b320
movzx edx, word [ebp + 2]
cmp edx, 0x5d
jne 0x84b320
jmp 0x84b470
cmp esi, 0x5d
mov esi, dword [esp + 0x190]
jne 0x84b380
jmp case.0x84b3e6.5
lea ecx, [esp + 8]
lea edx, [esp + 0xe0]
push 1
push dword [esp + 0x2c]
push dword [esi + 0x40]
mov eax, dword [esp + 0x180]
mov esi, eax
push esi
call fcn.00850290
add esp, 0x10
cmp dword [esi], 0
mov esi, dword [esp + 0x190]
jne 0x84f41b
cmp eax, 0x1a
ja case.0x84b3e6.1
xor ebp, ebp
mov ebx, 8
jmp dword [eax*4 + 0x84fe20]
mov ebx, dword [esp + 0xe0]
jmp case.0x84b3e6.5
mov ebp, eax
lea ecx, [eax - 6]
cmp ecx, 0x1c
mov edi, dword [esp + 0xc]
ja case.0x84b418.12
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x20]
lea ebx, [edx + 1]
lea edi, [edi + 2]
jmp dword [ecx*4 + 0x84fe8c]
mov eax, dword [esp + 8]
mov dword [esp + 0x60], eax
mov eax, dword [ebp*4 + 0x89129c]
add eax, 0xfffffffe
mov dword [esp + 8], eax
xor ebp, ebp
mov dword [esp + 0xc], edi
jmp case.0x84b3e6.25
mov eax, dword [esp + 8]
movzx ecx, word [eax + 2]
mov ebp, 1
cmp ecx, 0x5c
jne case.0x84b3e6.25
movzx ecx, word [eax + 4]
mov ebp, 1
cmp ecx, 0x45
jne case.0x84b3e6.25
add eax, 4
jmp 0x84b2bf
movzx ecx, cx
cmp ecx, 0x3a
mov edx, dword [esp + 0xc]
jne 0x84a9e6
mov ecx, dword [esi + 8]
mov dword [esp + 0xac], ecx
mov dword [esp + 8], edi
movzx ecx, word [edi]
mov edx, edi
xor esi, esi
cmp ecx, 0x5e
jne 0x84b4b0
add eax, 6
mov dword [esp + 8], eax
mov esi, 1
mov edx, eax
mov dword [esp + 0x34], 1
mov dword [esp + 0xb0], esi
lea eax, [ebp + 2]
mov dword [esp + 0x8c], eax
mov eax, ebp
mov dword [esp + 0x2c], edx
sub eax, edx
sar eax, 1
mov esi, 0x89143f
xor ebx, ebx
mov dword [esp + 0xa0], eax
movzx edi, byte [ebx + 0x891493]
cmp eax, edi
jne 0x84b504
sub esp, 4
push eax
push esi
push dword [esp + 0x38]
call fcn.00861180
add esp, 0x10
test eax, eax
mov eax, dword [esp + 0xa0]
je 0x84aba9
lea esi, [esi + edi + 1]
inc ebx
cmp ebx, 0xe
jne 0x84b4d9
mov eax, dword [esp + 0x174]
mov dword [eax], 0x1e
mov ecx, 6
mov esi, dword [esp + 0x190]
mov edx, dword [esp + 0xc]
jmp 0x84a9f8
mov ebx, 0x5b
jmp case.0x84b3e6.5
mov esi, dword [esp + 0x190]
mov ecx, dword [esp + 8]
movzx eax, word [ecx + 2]
cmp eax, 0x5c
jne 0x84b57d
mov edx, ecx
add edx, 4
mov esi, edx
movzx eax, word [esi]
cmp eax, 0x45
jne 0x84b597
mov dword [esp + 8], esi
movzx eax, word [esi + 2]
lea edx, [esi + 4]
mov dword [esp + 0x2c], 0
cmp eax, 0x5c
mov ecx, esi
je 0x84b550
add edx, 0xfffffffc
xor ebp, ebp
mov ecx, esi
jmp 0x84b5a4
mov ebp, dword [esp + 0x2c]
mov edx, ecx
cmp ebx, 0xd
je 0x84b5b0
cmp ebx, 0xa
je 0x84b5b0
test ebp, ebp
jne 0x84b661
jmp 0x84b5c3
add esi, 0xfffffffc
mov ax, 0x5c
mov ebp, dword [esp + 0x2c]
mov edx, esi
mov esi, dword [esp + 0x190]
cmp ebx, 0xd
jne 0x84b588
mov edi, dword [esp + 0xc4]
or byte [edi + 1], 8
test ebp, ebp
jne 0x84b661
movzx eax, ax
xor ebp, ebp
cmp eax, 0x2d
jne 0x84b661
lea eax, [edx + 4]
mov dword [esp + 8], eax
movzx ebp, word [edx + 4]
cmp ebp, 0x5c
jne 0x84b628
lea eax, [edx + 8]
add edx, 0xc
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax - 2]
cmp esi, 0x45
jne 0x84a998
mov dword [esp + 8], eax
movzx ebp, word [eax]
add eax, 4
add edx, 4
cmp ebp, 0x5c
je 0x84b5f0
add eax, 0xfffffffc
mov dword [esp + 0x2c], 0
mov esi, dword [esp + 0x190]
test bp, bp
jne 0x84b635
jmp 0x84b659
mov dword [esp + 0x2c], 0
test bp, bp
je 0x84b659
mov edi, dword [esp + 0x2c]
test edi, edi
setne dl
movzx esi, bp
cmp esi, 0x5d
jne 0x84a9dd
test edi, edi
mov esi, dword [esp + 0x190]
jne 0x84aa43
mov dword [esp + 8], ecx
mov ebp, dword [esp + 0x2c]
xor eax, eax
mov ecx, dword [esp + 0xc]
cmp ecx, 2
setl al
add ecx, eax
mov dword [esp + 0xc], ecx
cmp ecx, 1
jne 0x84b691
mov eax, ebp
or eax, dword [esp + 0x3c]
jne 0x84b691
mov eax, dword [esp + 8]
movzx ecx, word [eax + 2]
cmp ecx, 0x5d
je 0x84bf3f
lea ecx, [esp + 0x64]
lea edx, [esp + 0x48]
push ebx
push ebx
push esi
push dword [esp + 0x34]
call fcn.00851320
add esp, 0x10
add dword [esp + 0x20], eax
mov eax, dword [esp + 8]
lea ecx, [eax + 2]
mov dword [esp + 8], ecx
movzx ebx, word [eax + 2]
test ebx, ebx
je 0x84b6cd
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
jmp 0x84b6f6
mov ecx, dword [esp + 0x60]
test ecx, ecx
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
je 0x84bd1f
lea eax, [ecx + 2]
mov dword [esp + 8], eax
movzx ebx, word [ecx + 2]
xor ecx, ecx
test ebx, ebx
je 0x84bd21
test ebp, ebp
mov eax, edx
mov dword [esp + 0x2c], ebp
jne 0x84b210
cmp ebx, 0x5d
mov eax, edx
mov dword [esp + 0x2c], ebp
jne 0x84b210
mov dword [esp + 0x2c], 0
mov ebp, dword [esp + 0xa4]
jmp 0x84bd34
add eax, 4
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
sete dl
cmp ecx, 0x29
setne dh
xor dh, dl
jne 0x84b72a
test cx, cx
mov dword [esp + 8], eax
mov ebp, dword [esp + 4]
jne 0x84c358
jmp 0x84f4bb
mov eax, dword [esp + 0x28]
shr eax, 1
and eax, 1
add eax, 0x19
mov ebp, dword [esp + 4]
mov word [ebp], ax
jmp 0x84b9dc
mov ecx, dword [esp + 8]
lea eax, [ecx + 2]
mov dword [esp + 8], eax
movzx eax, word [ecx + 2]
cmp eax, 0x2a
jne 0x84bfd8
movzx eax, word [ecx + 4]
cmp eax, 0x3a
je 0x84c17d
movzx edx, ax
cmp edx, 0xff
ja 0x84b7ad
mov edx, dword [esi + 0xc]
test byte [edx + eax], 2
jne 0x84c17d
mov eax, dword [esi + 0x20]
sub eax, dword [esi + 0x10]
sar eax, 1
mov dword [esp + 0x38], eax
jmp 0x84c0a5
mov ebp, 0xffffffff
jmp 0x84b832
mov ebp, 0xffffffff
mov eax, 1
jmp 0x84b834
mov eax, dword [esp + 0x1c]
cmp eax, 0xfffffffe
mov edx, 0xffffffff
je 0x84b7e1
mov edx, eax
mov eax, dword [esi + 0x20]
sub eax, dword [esi + 0x10]
sar eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
shr eax, 2
and eax, 1
or eax, 0xc
mov ecx, dword [esp + 4]
mov word [ecx], ax
mov edi, ecx
lea eax, [ecx + 2]
mov ebp, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], edx
jmp 0x84c358
mov ebp, 1
xor eax, eax
mov ebx, dword [esp + 0x28]
test edi, edi
je 0x84f497
mov dword [esp + 0xc], eax
test eax, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
je 0x84b870
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x1c], eax
cmp ebp, dword [esp + 0xc]
setne byte [esp + 0xa4]
test bl, 8
mov dword [esp + 0x98], edi
mov ecx, dword [esp + 8]
mov dword [esp + 0x20], ebp
je 0x84b8b8
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0xff
ja 0x84bd13
mov ebp, ecx
mov ebx, dword [esp + 0x194]
jmp 0x84ca19
mov ebx, dword [esp + 0x194]
jmp 0x84cb21
lea ecx, [esp + 8]
lea edx, [esp + 0xe0]
push 0
push dword [esp + 0x2c]
push dword [esi + 0x40]
mov eax, dword [esp + 0x180]
mov esi, eax
push esi
call fcn.00850290
add esp, 0x10
cmp dword [esi], 0
mov esi, dword [esp + 0x190]
jne 0x84f41b
test eax, eax
je 0x84c0d2
mov dword [esp + 0x10], eax
lea eax, [eax - 6]
cmp eax, 0x11
mov edx, 0xffffffff
mov ecx, dword [esp + 0x1c]
jb 0x84b919
mov edx, ecx
cmp ecx, 0xfffffffe
je 0x84b920
mov edx, ecx
mov ebp, dword [esp + 0x10]
cmp ebp, 0x1c
mov dword [esp + 0x30], edx
je 0x84c505
cmp ebp, 0x1b
mov ebx, dword [esp + 0x194]
jne 0x84c57d
mov eax, dword [esi + 0x20]
sub eax, dword [esi + 0x10]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 8]
lea eax, [ecx + 2]
mov dword [esp + 8], eax
movzx edx, word [ecx + 2]
cmp edx, 0x3c
mov ebp, 0x3e
je 0x84b969
mov ebp, 0x27
movzx edx, word [ecx + 4]
cmp edx, 0x2b
je 0x84b989
movzx esi, dx
cmp esi, 0x2d
je 0x84b989
add edx, 0xffffffd0
movzx edx, dx
cmp edx, 9
ja 0x84de1f
lea edx, [ecx + 4]
add ecx, 6
movzx esi, word [ecx]
lea ebx, [esi - 0x30]
movzx ebx, bx
add ecx, 2
cmp ebx, 0xa
jb 0x84b98f
cmp ebp, esi
jne 0x84c8e8
mov dword [esp + 8], edx
mov ecx, 0xa3
mov eax, edx
jmp 0x84c8fa
mov cx, 0x5d
test byte [esi + 0x63], 2
je 0x84ba3f
jmp 0x84f4f8
test byte [esp + 0x28], 2
jne 0x84c076
mov ebp, dword [esp + 4]
mov word [ebp], 0x1b
add ebp, 2
xor edi, edi
jmp 0x84c358
mov cx, 0x7b
test al, al
je 0x84ba3f
mov eax, dword [esp + 8]
movzx ecx, word [eax + 2]
mov edx, ecx
add edx, 0xffffffd0
movzx edx, dx
cmp edx, 9
ja 0x84c35f
add eax, 4
xor ebx, ebx
movzx ecx, cx
lea edx, [ebx + ebx*4]
lea ecx, [ecx + edx*2 - 0x30]
mov ebx, ecx
cmp ecx, 0xffff
jg 0x84f483
movzx ecx, word [eax]
mov edx, ecx
add edx, 0xffffffd0
movzx edx, dx
add eax, 2
cmp edx, 9
jbe 0x84ba0c
add eax, 0xfffffffe
jmp 0x84c364
mov word [esp + 0x120], cx
mov eax, 1
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esi + 0x20]
sub ecx, dword [esi + 0x10]
sar ecx, 1
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x28]
and ecx, 1
sete dl
or dl, byte [esp + 0x5b]
jne 0x84bb24
movzx edx, word [esp + 0x120]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x84baa6
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [esp + 0x122]
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x894a84]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx edx, byte [edx*8 + 0x893407]
push ebx
xor eax, eax
mov ecx, dword [esp + 8]
xor ebx, ebx
jmp 0x84baf1
test dx, dx
je 0x84bb09
add eax, 1
movzx edx, word [ecx + eax*2]
cmp dx, 0x5c
jne 0x84bae9
mov ebx, eax
jmp 0x84baee
lea eax, [ecx + ebx*2 + 2]
pop ebx
ret
and al, 4
xor eax, eax
cmp word [edx], 0
je 0x84bb39
adc al, 0x8d
je 0x84bb4e
lea esi, [esi]
add byte [ebx - 0x7c99fe40], al
cmp al, 0x42
add byte [ebp - 0xa], dh
add eax, 1
cmp word [edx + eax*2], 0
jne 0x84bb29
ret
ret
mov ebx, dword [esp + 0xc]
movzx eax, byte [ecx]
cmp al, byte [ebx]
jne 0x84bb79
test al, al
je 0x84bb7d
xor eax, eax
jmp 0x84bb6d
test dl, dl
je 0x84bb7d
add eax, 1
movzx edx, byte [ecx + eax]
cmp dl, byte [ebx + eax]
je 0x84bb69
xor eax, eax
pop ebx
ret
mov eax, 1
pop ebx
ret
mov edi, dword [edi]
mov eax, dword [edi + 0x30]
test eax, eax
je 0x84bced
inc edi
xor byte [ebp - 0x7a088b40], al
in eax, dx
test ebp, ebp
je 0x84bcfd
mov dword [ebp], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x84bd3d
mov edx, dword [edi + 0x30]
movzx eax, word [edx]
test ax, ax
je 0x84bced
add edx, 2
xor ecx, ecx
lea esi, [esi]
lea esi, [eax - 0x41]
lea ebx, [eax + 0x20]
cmp si, 0x1a
cmovb eax, ebx
add edx, 2
movzx eax, ax
add ecx, eax
movzx eax, word [edx - 2]
test ax, ax
jne 0x84bd19
invalid
sal byte [ebp - 0x1e], 0x39
dec esp
and al, 0x14
cmp dword [esp + 0x14], ecx
jne 0x84bced
pop ebx
mov eax, dword [edi + 0x18]
pop esi
pop edi
pop ebp
ret
ret
add eax, 2
mov dword [esp + 8], eax
cmp dword [esp + 0xa4], 0
je 0x84c1ad
mov eax, dword [esp + 0x1c]
cmp eax, 0xfffffffe
mov edx, 0xffffffff
je 0x84bf64
mov edx, eax
mov edi, dword [esp + 0x90]
test edi, edi
sete al
or al, byte [esp + 0x5b]
mov dword [esp + 0x30], edx
jne 0x84c10b
mov eax, ebx
sar eax, 0x1f
shr eax, 0x19
add eax, ebx
mov ecx, eax
and ecx, 0x7fffff80
sar eax, 7
movzx eax, byte [eax + 0x894a84]
shl eax, 7
mov edx, ebx
sub edx, ecx
add edx, eax
movzx eax, word [edx + edx + 0x896c84]
mov edx, dword [esp + 0x30]
movzx eax, byte [eax*8 + 0x893407]
test ax, ax
je 0x84c10b
mov ecx, dword [esp + 4]
mov dword [ecx], 0x9000f
mov word [ecx + 4], ax
mov edi, ecx
lea eax, [ecx + 6]
jmp 0x84c708
mov edx, dword [esi + 0x20]
sub edx, dword [esi + 0x10]
sar edx, 1
mov dword [esp + 0x38], edx
movzx eax, ax
cmp eax, 0x3f
jne 0x84c0a5
lea eax, [ecx + 4]
mov dword [esp + 8], eax
movzx ebp, word [ecx + 4]
lea edx, [ebp - 0x21]
movzx edx, dx
cmp edx, 0x5b
ja case.0x84c02a.1
mov dword [esp + 0xc], 1
mov dword [esp + 0x14], 0x29
mov dword [esp + 0x20], 0x27
mov dword [esp + 0x10], 0
jmp dword [edx*4 + 0x84f964]
lea eax, [ecx + 6]
mov dword [esp + 8], eax
movzx eax, word [ecx + 6]
cmp eax, 0x29
jne 0x84c062
movzx eax, word [ecx + 8]
lea edx, [eax - 0x2a]
movzx edx, dx
cmp edx, 0x15
ja 0x84edfd
mov esi, 0x200003
bt esi, edx
jae 0x84edfd
mov esi, dword [esp + 0x190]
inc dword [esi + 0x5c]
mov ebx, 0x7e
jmp 0x84ebdd
mov edi, dword [esp + 0x1c]
cmp edi, 0xfffffffe
mov ecx, 0xffffffff
mov eax, 0xffffffff
mov edx, dword [esp + 0x30]
je 0x84c091
mov ecx, edx
mov eax, edi
mov ebp, dword [esp + 4]
mov word [ebp], 0x1c
add ebp, 2
xor edi, edi
jmp 0x84bb1b
mov ecx, dword [esp + 0x28]
test ch, 0x10
jne 0x84c377
mov eax, dword [esi + 0x40]
inc eax
mov dword [esi + 0x40], eax
mov edx, dword [esp + 4]
mov word [edx + 4], ax
mov ebx, 0x85
xor ebp, ebp
mov edi, 1
jmp 0x84c380
cmp dword [esp + 0x88], 0
mov eax, dword [esp + 0xe0]
je 0x84c6de
cmp eax, 0xffff
jbe 0x84c6de
sub esp, 8
lea ecx, [esp + 0x128]
push ecx
push eax
call fcn.00861040
add esp, 0x10
jmp 0x84c6eb
add edi, 0x1f
cmp dword [esp + 0x88], 0
mov eax, dword [esp + 4]
mov word [eax], di
je 0x84c6fb
cmp ebx, 0x10000
jb 0x84c6fb
mov edi, dword [esp + 4]
lea esi, [edi + 2]
sub esp, 8
push esi
push ebx
mov ebx, edx
call fcn.00861040
add esp, 0x10
lea eax, [esi + eax*2]
mov esi, dword [esp + 0x190]
mov dword [esp + 0x2c], ebp
mov ebp, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x194]
jmp 0x84c358
lea ebp, [ecx + 4]
mov dword [esp + 8], ebp
mov edx, dword [esi + 0xc]
add ecx, 6
movzx esi, ax
test byte [edx + esi], 2
je 0x84c736
mov dword [esp + 8], ecx
movzx eax, word [ecx]
add ecx, 2
cmp eax, 0x100
jb 0x84c18a
jmp case.0x84c78f.2
cmp dword [esp + 0x88], 0
je 0x84c7d8
cmp ebx, 0x10000
jb 0x84c7d8
sub esp, 8
lea eax, [esp + 0x128]
push eax
push ebx
call fcn.00861040
add esp, 0x10
jmp 0x84c7e5
mov edx, ebp
jmp 0x84a0b0
add eax, 2
xor ebx, ebx
movzx ecx, cx
cmp ecx, 0x7d
jne 0x84c65c
mov ebp, ebx
jmp 0x84c6bf
mov ebx, 0x83
xor edi, edi
xor ebp, ebp
mov eax, dword [esi + 0x58]
lea edx, [eax + 1]
mov dword [esi + 0x58], edx
cmp eax, 0xfa
jge 0x84f51c
mov dword [esp + 0xc], edi
cmp ebx, 0x80
mov dword [esp + 0x10], ebp
ja 0x84c3bf
cmp dword [esi + 0x80], 0
je 0x84c3bf
mov dword [esi + 0x80], 0
xor edi, edi
mov eax, dword [esp + 4]
jmp 0x84c3d1
mov eax, dword [esi + 0x20]
sub eax, dword [esi + 0x10]
sar eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 4]
mov edi, eax
mov word [eax], bx
mov dword [esp + 0x98], eax
mov eax, dword [esi + 0x40]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x68]
mov dword [esp + 0x3c], eax
mov dword [esp + 0xc0], 0
lea eax, [ebx - 0x7f]
xor edx, edx
cmp eax, 2
setb dl
mov dword [esp + 0x14], edx
xor eax, eax
cmp ebx, 0x87
sete al
add eax, dword [esp + 0x18c]
sub esp, 0xc
mov ebp, ebx
lea edx, [esp + 0xa4]
push dword [esp + 0x144]
push esi
push dword [esp + 0x19c]
lea ebx, [esp + 0xec]
push ebx
lea ebx, [esp + 0x104]
push ebx
lea ebx, [esp + 0x104]
push ebx
lea ebx, [esp + 0x120]
push ebx
push eax
push dword [esp + 0x38]
push dword [esp + 0x40]
push dword [esp + 0x48]
push dword [esp + 0x1ac]
lea eax, [esp + 0x44]
push eax
call fcn.00848740
add esp, 0x40
test eax, eax
je 0x84f41b
dec dword [esi + 0x58]
cmp ebp, 0x81
mov ecx, ebp
jne 0x84c498
mov eax, dword [esp + 0x20]
cmp dword [esi + 0x40], eax
ja 0x84c498
mov eax, dword [esp + 4]
mov word [eax], 0x82
cmp ecx, 0x80
mov ebx, dword [esp + 0x194]
ja 0x84c4aa
dec dword [esi + 0x5c]
test ebx, ebx
jne 0x84c835
cmp ecx, 0x87
jne 0x84c835
mov eax, 0xffffffff
mov ecx, dword [esp + 4]
movzx edx, word [ecx + 2]
movzx esi, word [ecx + edx*2]
lea ecx, [ecx + edx*2]
inc eax
cmp esi, 0x78
jne 0x84c4c7
mov ecx, dword [esp + 4]
movzx ecx, word [ecx + 4]
cmp ecx, 0x91
jne 0x84c801
mov ecx, 0x91
test eax, eax
mov esi, dword [esp + 0x190]
jle 0x84c835
jmp 0x84f5e2
mov eax, dword [esp + 8]
movzx ecx, word [eax + 2]
cmp ecx, 0x27
mov ebx, dword [esp + 0x194]
je 0x84c52a
movzx edx, cx
cmp edx, 0x3c
je 0x84c52a
cmp edx, 0x7b
jne 0x84f576
add eax, 2
mov dword [esp + 8], eax
movzx edx, cx
cmp edx, 0x27
mov ecx, edx
je 0x84c540
mov ecx, 0x7d
cmp edx, 0x3c
mov edx, 0x3e
je 0x84c54c
mov edx, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], ecx
jmp case.0x84c02a.5
test ebp, ebp
js 0x84d757
lea ecx, [ebp - 0xf]
cmp ecx, 1
ja 0x84d984
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
sub esp, 4
lea ecx, [esp + 0xc]
lea edx, [esp + 0x104]
push dword [esp + 0x178]
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.00850d70
add esp, 0x10
test eax, eax
je 0x84dff1
xor eax, eax
cmp dword [esp + 0x10], 0x10
sete al
mov ecx, dword [esi + 0x20]
sub ecx, dword [esi + 0x10]
sar ecx, 1
mov dword [esp + 0x38], ecx
xor ecx, ecx
cmp dword [esp + 0x100], eax
sete cl
mov eax, 0x10
sub eax, ecx
mov ecx, dword [esp + 4]
mov word [ecx], ax
movzx eax, word [esp + 0xd0]
mov word [ecx + 2], ax
movzx eax, word [esp + 0xcc]
mov word [ecx + 4], ax
mov edi, ecx
lea eax, [ecx + 6]
xor ecx, ecx
mov dword [esp + 4], eax
test ecx, ecx
je 0x84dffe
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x30]
jmp 0x84d96a
lea edx, [eax + 2]
movzx ecx, word [eax + 2]
mov ebp, 0xffffffff
cmp ecx, 0x7d
je 0x84c6bd
lea esi, [ecx - 0x30]
movzx esi, si
xor ebp, ebp
cmp esi, 9
ja 0x84c6ae
add eax, 4
xor ebp, ebp
lea edx, [ebp + ebp*4]
movzx ecx, cx
lea ebp, [ecx + edx*2 - 0x30]
cmp ebp, 0xffff
jg 0x84f483
movzx ecx, word [eax]
mov edx, ecx
add edx, 0xffffffd0
movzx edx, dx
add eax, 2
cmp edx, 9
jbe 0x84c67f
add eax, 0xfffffffe
mov edx, eax
cmp ebp, ebx
mov esi, dword [esp + 0x190]
jl 0x84f672
mov eax, edx
mov ecx, dword [esp + 0x174]
cmp dword [ecx], 0
mov dword [esp + 8], eax
mov eax, ebx
mov ebx, dword [esp + 0x28]
je 0x84b838
jmp 0x84f41b
mov word [esp + 0x120], ax
mov eax, 1
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x194]
jmp 0x84ba50
mov eax, dword [esp + 4]
mov word [eax + 2], bx
mov edi, eax
lea eax, [eax + 4]
mov dword [esp + 0x2c], ebp
mov ebp, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x194]
jmp 0x84c358
xor ebx, ebx
cmp esi, 0x3a
mov edi, 0
jne 0x84c76f
mov ebx, ecx
jmp 0x84c749
add ebx, 2
mov ax, word [ebx]
test ax, ax
je 0x84c759
movzx edx, ax
cmp edx, 0x29
jne 0x84c746
mov dword [esp + 8], ebx
sub ebx, ecx
sar ebx, 1
cmp ebx, 0x10000
mov edi, ecx
jae 0x84f660
movzx eax, ax
cmp eax, 0x29
jne case.0x84c78f.2
add ecx, 0xfffffffe
sub ecx, ebp
sar ecx, 1
cmp ecx, 6
mov esi, dword [esp + 4]
ja case.0x84c78f.2
jmp dword [ecx*4 + 0x84fcb4]
sub esp, 4
push 0
push 0x89139f
push ebp
call fcn.00861180
add esp, 0x10
xor ecx, ecx
test eax, eax
je 0x84eaab
jmp case.0x84c78f.2
mov eax, dword [esp + 4]
mov edi, eax
mov dword [esp + 0x2c], ebp
mov edx, eax
mov ebx, dword [esp + 0x194]
test ecx, ecx
jne 0x84d976
jmp 0x84a0b0
mov word [esp + 0x120], bx
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x50], ecx
mov ebx, dword [esp + 0x194]
jmp 0x84ba50
cmp eax, 2
mov esi, dword [esp + 0x190]
jge 0x84f5f4
mov ecx, 0x87
test eax, eax
jne 0x84c835
mov dword [esp + 0xd4], 0xffffffff
mov dword [esp + 0xe4], 0xffffffff
mov ecx, 0x87
mov eax, dword [esp + 8]
movzx eax, word [eax]
cmp eax, 0x29
jne 0x84f52e
test ebx, ebx
je 0x84c881
mov eax, dword [ebx]
mov edx, 0x7fffffeb
sub edx, eax
mov ecx, dword [esp + 0xc0]
add ecx, 0xfffffffc
cmp edx, ecx
jl 0x84f40e
add ecx, eax
mov dword [ebx], ecx
mov ebp, dword [esp + 4]
mov dword [ebp + 2], 0x780002
mov word [ebp + 6], 2
add ebp, 8
jmp 0x84c358
mov ebp, dword [esp + 0x98]
cmp ecx, 0x91
je 0x84c358
cmp ecx, 0x81
jl 0x84db63
cmp dword [esp + 0x1c], 0xfffffffe
mov eax, dword [esp + 0xe4]
jne 0x84e08c
cmp eax, 0xfffffffe
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x1c], eax
jg 0x84c8cb
mov dword [esp + 0x1c], 0xffffffff
mov ecx, eax
shr ecx, 0x1f
mov dword [esp + 0xa8], ecx
test eax, eax
jns 0x84e6ce
mov eax, dword [esp + 0x40]
jmp 0x84e6d5
mov ecx, dword [esp + 0x174]
mov dword [ecx], 0x39
mov ecx, 6
mov ebx, dword [esp + 0x194]
cmp cl, 0x86
mov esi, dword [esp + 0x190]
mov edx, dword [esp + 0x30]
je 0x84d7a2
sar dword [esp + 0x38], 1
cmp cl, 0xa3
jne 0x84d94c
mov dword [esp + 0x14], ebp
mov bp, word [eax]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x1c], edx
movzx ecx, bp
cmp ecx, 0x2b
jne 0x84c96c
lea edx, [eax + 2]
mov dword [esp + 8], edx
movzx ebp, word [eax + 2]
mov eax, ebp
add eax, 0xffffffd0
movzx eax, ax
cmp eax, 0xa
mov eax, edx
jb 0x84c98b
jmp 0x84f618
cmp ecx, 0x2d
jne 0x84c98b
movzx ebp, word [eax + 2]
lea edx, [ebp - 0x30]
movzx edx, dx
cmp edx, 9
ja case.0x84c02a.1
add eax, 2
mov dword [esp + 8], eax
lea edx, [ebp - 0x30]
movzx edx, dx
cmp edx, 9
ja 0x84d71e
add eax, 2
xor edx, edx
cmp edx, 0xccccccc
jge 0x84f4cd
lea edx, [edx + edx*4]
mov dword [esp + 8], eax
movzx esi, bp
lea edi, [esi + edx*2 - 0x30]
mov esi, dword [esp + 0x190]
movzx ebp, word [eax]
mov edx, ebp
add edx, 0xffffffd0
movzx edx, dx
add eax, 2
cmp edx, 0xa
mov edx, edi
jb 0x84c99f
jmp 0x84d720
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
jmp 0x84c9f9
xor eax, eax
mov edx, dword [esp + 0x3c]
jmp 0x84ca19
mov dword [esp + 0x34], 1
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
cmp eax, 0x100
mov ebp, ecx
mov edx, dword [esp + 0x3c]
jae 0x84cb16
mov ecx, dword [esi + 0xc]
add ebp, 2
movzx eax, ax
test byte [ecx + eax], 1
je 0x84ca3b
movzx eax, word [ebp]
add ebp, 2
cmp eax, 0x100
jb 0x84ca1f
jmp 0x84cb11
cmp eax, 0x23
jne 0x84cb11
movzx ecx, word [ebp]
xor eax, eax
test cx, cx
je 0x84ca19
mov dword [esp + 0x3c], edx
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x84]
test eax, eax
mov dword [esp + 0x10], ebp
je 0x84ca90
cmp ebp, edx
jae 0x84cad4
sub esp, 0xc
push dword [esp + 0xa0]
push dword [esp + 0xcc]
push edx
push eax
push dword [esp + 0x2c]
call fcn.00860ec0
add esp, 0x20
test eax, eax
je 0x84cad4
jmp 0x84c9da
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
lea esi, [eax + eax]
sub edx, esi
mov esi, dword [esp + 0x190]
mov eax, ebp
cmp eax, edx
ja 0x84cad4
cmp cx, word [esi + 0x8c]
jne 0x84cad4
cmp dword [esp + 0x34], 1
je 0x84c9f1
movzx ecx, word [ebp + 2]
cmp cx, word [esi + 0x8e]
je 0x84c9f9
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 2]
cmp dword [esp + 0x88], 0
je 0x84cafe
mov edx, ecx
movzx ecx, word [edx + 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x84cafe
add edx, 4
mov eax, edx
mov ebp, eax
movzx ecx, word [eax]
test cx, cx
jne 0x84ca53
jmp 0x84c9e9
add ebp, 0xfffffffe
mov ecx, ebp
add ecx, 0xfffffffe
mov dword [esp + 8], ecx
mov ebp, dword [esp + 0x20]
movzx eax, word [ecx + 2]
cmp eax, 0x28
jne 0x84cb99
movzx eax, word [ecx + 4]
mov dword [esp + 0x10], 0
cmp eax, 0x3f
mov eax, dword [esp + 0xd8]
jne 0x84cbdb
movzx eax, word [ecx + 6]
mov dword [esp + 0x10], 0
cmp eax, 0x23
mov eax, dword [esp + 0xd8]
jne 0x84cbdb
mov dword [esp + 0x3c], edx
add ecx, 6
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
mov ebp, ecx
sete cl
cmp eax, 0x29
setne dl
xor dl, cl
mov ecx, ebp
jne 0x84cb65
test ax, ax
mov dword [esp + 8], ecx
je 0x84f4bb
mov ax, word [ecx + 2]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x20]
add ecx, 2
movzx eax, ax
cmp eax, 0x3f
je 0x84cbc8
mov dword [esp + 0x10], 0
cmp eax, 0x2b
mov eax, dword [esp + 0xd8]
jne 0x84cbdb
mov dword [esp + 8], ecx
xor eax, eax
mov dword [esp + 0x10], 1
jmp 0x84cbdb
mov dword [esp + 8], ecx
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x34], eax
movzx eax, word [edi]
cmp eax, 0x75
jne 0x84cc44
add dword [esp + 4], 8
test ebx, ebx
mov eax, dword [edi]
mov dword [edi + 4], eax
mov dword [edi], 0x40081
mov dword [edi + 8], 0x40078
mov dword [esp + 0xc0], 6
jne 0x84ccb6
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x20]
add ecx, 2
cmp eax, ecx
jb 0x84ccb6
mov ebp, edx
lea edx, [edi + 2]
movzx ecx, word [eax - 2]
sub edx, dword [esi + 0x14]
sar edx, 1
cmp edx, ecx
mov edx, ebp
mov ebp, dword [esp + 0x20]
jne 0x84ccb6
add ecx, 2
mov word [eax - 2], cx
mov ax, word [edi]
lea ecx, [eax - 0x1d]
movzx ecx, cx
cmp ecx, 3
ja 0x84cdd3
mov dword [esp + 0x3c], edx
lea ecx, [eax - 0x1e]
movzx edx, cx
xor ecx, ecx
cmp edx, 2
ja 0x84cc6b
lea ecx, [edx + edx*2]
lea ecx, [edx + ecx*4 + 0xd]
mov edx, dword [esp + 4]
movzx ebp, word [edx - 2]
cmp dword [esp + 0x88], 0
je 0x84ce81
mov edx, ebp
and edx, 0xfc00
movzx edx, dx
cmp edx, 0xdc00
jne 0x84ce81
mov eax, dword [esp + 4]
mov eax, dword [eax - 4]
mov dword [esp + 0x150], eax
mov ax, word [edi]
mov dword [esp + 0x44], 0x10000002
jmp 0x84cea8
mov eax, dword [esp + 4]
sub eax, edi
mov dword [esp + 0xa0], eax
mov ecx, eax
sar ecx, 1
mov dword [esp + 0xb0], ecx
mov eax, dword [esp + 0xc]
test eax, eax
je 0x84cdf1
cmp eax, 2
jl 0x84cd38
test ebx, ebx
je 0x84d43a
lea edx, [eax - 1]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x14c], edx
fild dword [esp + 0x14c]
mov dword [esp + 0x148], ecx
fimul dword [esp + 0x148]
fld qword [0x891130]
fxch st(1)
fucompp
fnstsw ax
sahf
ja 0x84f40e
imul ecx, edx
mov eax, dword [ebx]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x84f40e
add eax, ecx
mov dword [ebx], eax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], 0
test ebp, ebp
mov eax, dword [esp + 0xc]
jg 0x84cd5a
xor eax, eax
sub ebp, eax
xor eax, eax
test ebp, ebp
js 0x84d2d4
test ebx, ebx
mov dword [esp + 0x3c], edx
je 0x84cf6b
test ebp, ebp
je 0x84cf6b
mov ecx, dword [esp + 0xc0]
add ecx, 5
mov dword [esp + 0x140], ebp
fild dword [esp + 0x140]
mov dword [esp + 0x144], ecx
fimul dword [esp + 0x144]
fld qword [0x891130]
fxch st(1)
fucompp
fnstsw ax
sahf
ja 0x84f40e
imul ecx, ebp
add ecx, 0xfffffffc
mov eax, dword [ebx]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x84f40e
add eax, ecx
mov dword [ebx], eax
jmp 0x84d201
mov ebp, edx
movzx edx, ax
mov ecx, 0x34
mov dword [esp + 0x44], edx
cmp edx, 0x16
ja 0x84cf13
mov edx, ebp
jmp 0x84ceac
mov eax, ebp
mov dword [esp + 0x3c], edx
cmp eax, 1
mov eax, dword [esp + 4]
mov word [eax], 0
jg 0x84d263
sub esp, 4
mov edx, 1
mov ecx, edi
push dword [esp + 0x3c]
push esi
push dword [esp + 0xa0]
call fcn.0084ff00
add esp, 0x10
cmp dword [esp + 0xa0], 0
je 0x84ce44
mov eax, dword [esp + 0xa0]
movzx ecx, byte [edi + eax - 1]
mov byte [edi + eax + 1], cl
dec eax
jne 0x84ce38
add dword [esp + 4], 2
test ebp, ebp
mov edx, dword [esp + 0x3c]
je 0x84d6aa
mov eax, dword [esp + 0x34]
lea eax, [eax + 0x92]
mov word [edi], ax
mov eax, edi
lea edi, [edi + 2]
mov dword [esp + 0x18], 0
dec ebp
mov ecx, dword [esp + 0x38]
test ebp, ebp
jns 0x84cd66
jmp 0x84d2d4
mov dword [esp + 0x44], ebp
cmp dword [esp + 0xc], 2
jl 0x84cea8
movzx edx, ax
cmp edx, 0x1e
ja 0x84cea8
mov edx, dword [esi + 0x68]
or edx, dword [esp + 0xb4]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x44]
jmp 0x84ceac
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x20]
add eax, 0xfffffff1
movzx eax, ax
mov dword [esp + 0x18], 0xffffffff
cmp eax, 1
mov eax, 0xffffffff
ja 0x84ced4
movzx eax, word [edi + 2]
mov dword [esp + 0x18], eax
movzx eax, word [edi + 4]
mov dword [esp + 0x24], eax
test ebp, ebp
mov eax, dword [esp + 0xc]
je 0x84cf5e
add dword [esp + 0x34], ecx
cmp eax, 1
je 0x84d30b
test eax, eax
jne 0x84d329
cmp ebp, 1
je 0x84d6f3
cmp ebp, 0xffffffff
mov eax, dword [esp + 0x34]
jne 0x84dc28
add eax, 0x21
jmp 0x84dc20
lea ecx, [eax - 0x6e]
movzx ecx, cx
cmp ecx, 6
ja 0x84d3d4
cmp dword [esp + 0x20], 0
mov edx, ebp
je 0x84cf5e
mov eax, dword [esp + 0xc]
test eax, eax
mov edi, dword [esp + 0x20]
jne 0x84d780
cmp edi, 0xffffffff
jne 0x84d780
mov ecx, dword [esp + 0x34]
add ecx, 0x62
mov eax, dword [esp + 4]
mov word [eax], cx
add eax, 2
mov dword [esp + 4], eax
jmp 0x84d425
mov dword [esp + 4], edi
mov ebp, dword [esp + 0x14]
jmp 0x84ddd5
test ebp, ebp
jle 0x84d201
mov eax, dword [esp + 0x34]
add eax, 0x92
mov edx, dword [esi + 0x10]
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0x20]
mov dword [esp + 0xc], edx
mov edx, ebp
mov esi, dword [esp + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xc]
sub ecx, dword [esp + 0x24]
sar ecx, 1
mov dword [esp + 0x8c], ecx
dec edx
mov dword [esp + 0xac], edx
mov word [esi], ax
mov dword [esp + 0x20], ebp
je 0x84cfda
lea eax, [esi + 4]
mov edx, esi
mov word [esi + 2], 0x83
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x84cfe8
mov esi, ecx
mov ecx, eax
sub ecx, esi
shr ecx, 1
jmp 0x84cfea
add esi, 2
mov edx, esi
mov esi, dword [esp + 0x190]
jmp 0x84cffc
xor ecx, ecx
mov esi, dword [esp + 0x190]
mov word [edx + 4], cx
add edx, 6
mov dword [esp + 0x18], eax
sub esp, 4
push dword [esp + 0xa4]
push edi
mov dword [esp + 0x10], edx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov eax, dword [esi + 0x10]
mov ebp, dword [esi + 0x20]
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0x24], eax
lea eax, [eax + ecx*2]
mov esi, dword [esp + 0x90]
mov edx, esi
sub edx, dword [esp + 0x8c]
mov dword [esp + 0x44], edx
lea eax, [eax + edx*2 - 0xc8]
mov dword [esp + 0xc], ebp
cmp ebp, eax
mov ebp, dword [esp + 0x20]
jbe 0x84d127
lea ebp, [ecx + ecx]
cmp ebp, 0x32001
jl 0x84d05f
mov ebp, 0x32000
cmp ecx, 0x31fff
mov eax, 0x48
mov esi, dword [esp + 0x190]
jg 0x84f389
mov edx, ebp
sub edx, ecx
cmp edx, 0x64
jl 0x84f389
lea eax, [ebp + ebp]
sub esp, 0xc
push eax
call dword [0x891040]
add esp, 0x10
test eax, eax
je 0x84f46a
mov dword [esp + 0xc], ebp
mov ecx, dword [esi + 0x3c]
add ecx, ecx
sub esp, 4
push ecx
push dword [esi + 0x10]
push eax
mov dword [esp + 0x34], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x34]
add esp, 0x10
mov eax, dword [esi + 0x10]
mov ebp, dword [esi + 0x20]
sub ebp, eax
add ebp, edx
mov dword [esi + 0x20], ebp
cmp dword [esi + 0x3c], 0x801
jl 0x84d0e8
sub esp, 0xc
push eax
call dword [0x891044]
mov edx, dword [esp + 0x34]
add esp, 0x10
mov ebp, dword [esi + 0x20]
mov dword [esi + 0x10], edx
mov eax, dword [esp + 0xc]
mov dword [esi + 0x3c], eax
mov eax, dword [esp + 0x174]
mov dword [eax], 0
mov ecx, dword [esi + 0x3c]
lea eax, [edx + ecx*2]
mov edx, dword [esp + 0x44]
lea eax, [eax + edx*2 - 0xc8]
cmp ebp, eax
ja 0x84d04f
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
cmp esi, eax
jge 0x84d1d4
mov ebx, dword [esp + 0x24]
lea ecx, [ebx + eax*2]
xor eax, eax
cmp dword [esp + 0xac], 0
setne al
mov dword [esp + 0x44], eax
lea eax, [ebx + esi*2 + 2]
mov edx, ebx
cmp eax, ecx
mov esi, dword [esp + 4]
ja 0x84d15e
mov eax, ecx
mov dword [esp + 0x130], eax
mov ebp, dword [esp + 0x90]
mov ebx, edx
lea edx, [ebx + ebp*2]
neg ebx
add ebp, ebp
sub ebx, ebp
mov ebp, dword [esp + 0xb0]
mov eax, dword [esp + 0x44]
lea ebp, [ebp + eax*2 + 1]
mov eax, dword [esp + 0x130]
lea eax, [eax + ebx - 1]
shr eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
movzx ebx, word [edx]
add ebx, ebp
mov word [eax], bx
add eax, 2
add edx, 2
cmp edx, ecx
jb 0x84d19b
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x44]
lea ecx, [ecx + eax*2 + 2]
mov eax, dword [esp + 0x190]
mov dword [esp + 0xc], ecx
mov dword [eax + 0x20], ecx
mov ebx, dword [esp + 0x194]
mov ebp, dword [esp + 0x20]
jmp 0x84d1d8
mov esi, dword [esp + 4]
mov eax, dword [esp + 0xb0]
lea esi, [esi + eax*2]
cmp ebp, 1
mov edx, dword [esp + 0xac]
mov ebp, edx
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x34]
jg 0x84cf94
jmp 0x84d205
mov esi, dword [esp + 4]
mov dword [esp + 4], esi
cmp dword [esp + 0x18], 0
je 0x84d41a
mov esi, dword [esp + 0x190]
mov edx, dword [esp + 4]
mov ecx, edx
mov ebp, dword [esp + 0x18]
sub ecx, ebp
shr ecx, 1
inc ecx
movzx eax, word [ebp]
test eax, eax
mov word [edx], 0x78
mov edi, edx
mov word [edx + 2], cx
mov word [ebp], cx
je 0x84d24d
add eax, eax
sub ebp, eax
mov dword [esp + 0x18], ebp
mov eax, ebp
jmp 0x84d251
mov dword [esp + 0x18], eax
mov edx, edi
add edx, 4
test eax, eax
jne 0x84d21f
mov dword [esp + 4], edx
jmp 0x84d421
sub esp, 4
mov edx, 3
mov ecx, edi
push dword [esp + 0x3c]
push esi
push dword [esp + 0xa0]
call fcn.0084ff00
add esp, 0x10
cmp dword [esp + 0xa0], 0
je 0x84d29e
mov eax, dword [esp + 0xa0]
movzx ecx, byte [edi + eax - 1]
mov byte [edi + eax + 5], cl
dec eax
jne 0x84d292
mov eax, dword [esp + 0x34]
lea eax, [eax + 0x92]
mov word [edi], ax
lea eax, [edi + 4]
mov dword [esp + 0x18], eax
mov dword [edi + 2], 0x83
lea edi, [edi + 6]
add dword [esp + 4], 6
xor eax, eax
dec ebp
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
test ebp, ebp
jns 0x84cd66
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 4]
lea edi, [ecx - 4]
movzx eax, word [ecx - 2]
add eax, eax
mov dword [esp + 0x18], edi
sub edi, eax
mov dword [esp + 0x20], eax
neg eax
movzx ebp, word [ecx + eax - 4]
cmp ebp, 0x81
jne 0x84d36b
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x84d385
jmp 0x84d680
cmp ebp, 1
je 0x84db26
cmp ebp, 0xffffffff
jne 0x84d6fc
mov eax, dword [esp + 0x34]
add eax, 0x23
jmp 0x84dc20
add ecx, 0x29
mov word [edi], cx
mov word [edi + 2], ax
lea ecx, [edi + 4]
test ebp, ebp
js 0x84d6b8
sub ebp, eax
je 0x84dc37
test dword [esp + 0x44], 0x10000000
sete al
or al, byte [esp + 0x5b]
je 0x84dbcb
mov eax, dword [esp + 0x44]
mov word [edi + 4], ax
add edi, 6
jmp 0x84dbfe
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x84d66e
movzx eax, bp
cmp eax, 0x82
jne 0x84d66e
mov word [edi], 0x83
mov bp, 0x83
test ebx, ebx
jne 0x84d9c6
mov ebx, edi
mov dword [esp + 0x3c], edx
sub esp, 4
mov ecx, ebx
mov edx, dword [esp + 0x1c]
push 0
push esi
push dword [esp + 0xa0]
call fcn.00849950
add esp, 0x10
test eax, eax
jne 0x84d9b1
movzx eax, word [ebx + 2]
movzx ecx, word [ebx + eax*2]
lea ebx, [ebx + eax*2]
cmp ecx, 0x77
je 0x84d39c
jmp 0x84d9b7
lea ecx, [eax - 0x7d]
movzx ecx, cx
cmp ecx, 0xa
mov edx, ebp
ja 0x84d693
mov ecx, dword [esp + 4]
sub ecx, edi
mov dword [esp + 0xa0], ecx
sar ecx, 1
movzx eax, ax
cmp eax, 0x87
jne 0x84db0c
movzx eax, word [edi + 4]
cmp eax, 0x91
mov ebp, dword [esp + 0x20]
jne 0x84ccc7
jmp 0x84db26
mov esi, dword [esp + 0x190]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
test ecx, ecx
jne 0x84dcb0
jmp 0x84ddd5
cmp dword [esp + 0xa8], 0
setne ah
cmp dword [esp + 0x14], 0
sets al
and al, ah
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x8c], ecx
jne 0x84d467
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x20], ebp
test al, al
mov eax, dword [esp + 0x40]
jne 0x84d475
mov eax, edx
mov dword [esp + 0xac], eax
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x44], 1
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 4]
sub eax, edx
sar eax, 1
mov ebp, eax
mov dword [esp + 0x90], ebp
sub esp, 4
push dword [esp + 0xa4]
push edi
mov dword [esp + 0x10], ecx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0x18], edx
lea edx, [edx + ecx*2]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
sub edx, ebp
mov dword [esp + 0x24], edx
mov ebp, dword [esp + 0x3c]
lea edx, [ebp + edx*2 - 0xc8]
cmp eax, edx
mov edx, dword [esp + 0x90]
jbe 0x84d5b4
lea ebp, [ecx + ecx]
cmp ebp, 0x32001
jl 0x84d503
mov ebp, 0x32000
cmp ecx, 0x31fff
mov eax, 0x48
jg 0x84f389
mov edx, ebp
sub edx, ecx
cmp edx, 0x64
jl 0x84f389
lea eax, [ebp + ebp]
sub esp, 0xc
push eax
call dword [0x891040]
add esp, 0x10
test eax, eax
je 0x84f46a
mov ecx, dword [esi + 0x3c]
add ecx, ecx
sub esp, 4
push ecx
push dword [esi + 0x10]
push eax
mov dword [esp + 0x28], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x28]
add esp, 0x10
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x20]
sub eax, ecx
add eax, edx
mov dword [esi + 0x20], eax
cmp dword [esi + 0x3c], 0x801
jl 0x84d581
sub esp, 0xc
push ecx
call dword [0x891044]
mov edx, dword [esp + 0x28]
add esp, 0x10
mov eax, dword [esi + 0x20]
mov dword [esi + 0x10], edx
mov dword [esi + 0x3c], ebp
mov ecx, dword [esp + 0x174]
mov dword [ecx], 0
mov ecx, dword [esi + 0x3c]
lea edx, [edx + ecx*2]
mov ebp, dword [esp + 0x24]
lea edx, [edx + ebp*2 - 0xc8]
cmp eax, edx
ja 0x84d4f3
mov edx, dword [esp + 0x90]
cmp dword [esp + 0x14], edx
mov ebp, edx
jge 0x84d61d
mov edx, dword [esp + 0x18]
lea ecx, [edx + ebp*2]
mov ebx, dword [esp + 0x14]
lea esi, [edx + ebx*2 + 2]
cmp esi, ecx
mov ebp, ebx
ja 0x84d5d3
mov esi, ecx
mov ebx, edx
lea edx, [ebx + ebp*2]
neg ebx
add ebp, ebp
sub ebx, ebp
lea esi, [esi + ebx - 1]
shr esi, 1
mov dword [esp + 0x24], esi
mov ebp, eax
mov esi, dword [esp + 0xb0]
movzx ebx, word [edx]
add ebx, esi
mov word [ebp], bx
add ebp, 2
add edx, 2
cmp edx, ecx
jb 0x84d5f1
mov ecx, dword [esp + 0x24]
lea eax, [eax + ecx*2 + 2]
mov esi, dword [esp + 0x190]
mov dword [esi + 0x20], eax
mov ebx, dword [esp + 0x194]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xb0]
lea ecx, [ecx + edx*2]
mov edx, dword [esp + 0x44]
inc edx
mov dword [esp + 0x44], edx
cmp edx, dword [esp + 0xc]
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x14], ebp
mov edx, dword [esp + 0x18]
jl 0x84d496
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0xac]
mov ecx, ebp
mov ebp, dword [esp + 0x20]
jmp 0x84cd48
lea eax, [ebp - 0x81]
movzx eax, ax
cmp eax, 1
ja 0x84d38e
mov eax, dword [esp + 0x34]
add eax, 0x79
mov edi, dword [esp + 0x18]
mov word [edi], ax
jmp 0x84d429
movzx eax, ax
cmp eax, 0x9d
mov ebp, dword [esp + 0x14]
je 0x84ddd5
jmp 0x84f606
mov word [edi], 0xa1
mov ebp, dword [esp + 0x14]
jmp 0x84ddd5
mov ebp, dword [esp + 0x44]
test ebp, 0x10000000
sete al
or al, byte [esp + 0x5b]
je 0x84db2f
mov word [edi + 4], bp
mov eax, dword [esp + 0x18]
test eax, eax
js 0x84e0df
mov word [edi + 6], ax
mov eax, dword [esp + 0x24]
mov word [edi + 8], ax
add edi, 0xa
jmp 0x84e0e2
mov eax, dword [esp + 0x34]
jmp 0x84dc1d
mov ecx, dword [esp + 0x34]
add ecx, 0x27
mov eax, dword [esp + 4]
mov word [eax], cx
add ebp, 0xffff
mov word [eax + 2], bp
add eax, 4
mov ecx, eax
jmp 0x84dc37
xor edx, edx
movzx eax, bp
cmp dword [esp + 0x14], eax
jne 0x84f5d0
cmp ecx, 0x2d
mov ebp, dword [esp + 0x5c]
jne 0x84dae6
test edx, edx
je 0x84f63c
mov eax, dword [esi + 0x40]
sub eax, edx
inc eax
test eax, eax
mov edx, eax
jg 0x84e11f
jmp 0x84f588
neg ebp
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov ecx, edx
mov ebp, dword [esp + 0x5c]
jmp 0x84e269
cmp eax, 1
mov ecx, dword [esp + 0x10]
jne 0x84ddf4
cmp edi, 0xffffffff
jne 0x84ddf4
mov edi, dword [esp + 0x34]
add edi, 0x64
jmp 0x84de0c
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x1c], edx
lea ecx, [eax + 2]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], ecx
movzx ecx, word [eax + 2]
lea edx, [ecx - 0x30]
movzx edx, dx
cmp edx, 9
jbe 0x84f556
movzx edx, cx
cmp edx, 0xff
ja 0x84d827
mov edx, dword [esi + 0xc]
add eax, 4
movzx esi, cx
test byte [edx + esi], 0x10
je 0x84d817
mov dword [esp + 8], eax
movzx ecx, word [eax]
add eax, 2
cmp ecx, 0x100
jb 0x84d7fc
add eax, 0xfffffffe
mov esi, dword [esp + 0x190]
mov edx, dword [esp + 0x10]
jmp 0x84d82d
mov edx, dword [esp + 0x10]
mov eax, edx
sub eax, edx
mov ebp, eax
sar ebp, 1
test ebx, ebx
mov edx, dword [esp + 0xc]
mov edi, ebp
mov dword [esp + 0x38], edi
je 0x84d8fc
test ebp, ebp
je 0x84f5ac
cmp cx, word [esp + 0x14]
jne 0x84f59a
cmp eax, 0x41
jge 0x84f5be
test edx, edx
jne 0x84d868
inc dword [esi + 0x54]
mov eax, dword [ebx]
lea ecx, [eax + 9]
mov dword [ebx], ecx
cmp dword [esi + 0x7c], 0
je 0x84d87a
add eax, 0x11
mov dword [ebx], eax
mov eax, dword [esi + 0x30]
test eax, eax
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
jle 0x84daff
mov ebp, dword [esi + 0x28]
xor ebx, ebx
xor edx, edx
cmp ecx, dword [ebp + 4]
jne 0x84d8e8
sub esp, 4
push ecx
push dword [ebp]
push edi
mov edi, edx
call fcn.00861130
mov ecx, dword [esp + 0x48]
mov edx, edi
mov edi, dword [esp + 0x20]
add esp, 0x10
test eax, eax
jne 0x84d8e8
cmp dword [esp + 0xc], 0
mov edx, dword [ebp + 8]
jne 0x84e687
mov eax, dword [esi + 0x24]
test eax, eax
je 0x84d8e8
movzx ecx, word [eax + 4]
cmp edx, ecx
je 0x84d8de
mov eax, dword [eax]
test eax, eax
jne 0x84d8ce
jmp 0x84d8e4
mov word [eax + 6], 1
mov ecx, dword [esp + 0x38]
inc ebx
add ebp, 0xc
mov eax, dword [esi + 0x30]
cmp ebx, eax
jl 0x84d894
mov ebp, dword [esp + 0x5c]
jmp 0x84e105
mov ebp, dword [esi + 0x2c]
mov eax, dword [esi + 0x30]
xor ebx, ebx
test eax, eax
jle 0x84e0f9
mov edi, dword [esp + 0x10]
lea eax, [ebp + 2]
sub esp, 4
push dword [esp + 0x3c]
push eax
push edi
call fcn.00861130
add esp, 0x10
test eax, eax
jne 0x84d938
mov eax, dword [esp + 0x38]
cmp word [ebp + eax*2 + 2], 0
je 0x84e0f6
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
lea ebp, [ebp + ecx*2]
inc ebx
cmp ebx, eax
jl 0x84d910
jmp 0x84e0f9
mov eax, edx
mov edx, dword [esp + 4]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x1c], eax
test ecx, ecx
je 0x84a0b0
cmp ecx, 4
je 0x84a0b0
jmp 0x84f568
cmp ebp, 5
ja 0x84e600
mov ecx, 0x32
bt ecx, ebp
jae 0x84e600
cmp dword [esi + 0x48], 0
jne 0x84e646
mov dword [esi + 0x48], 1
jmp 0x84e646
add ebp, 5
mov word [edi], bp
mov ebx, dword [esp + 0x194]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
movzx eax, bp
cmp eax, 0x87
jne 0x84d9ea
movzx eax, word [edi + 2]
movzx eax, word [edi + eax*2]
mov bp, 0x87
cmp eax, 0x77
je 0x84d9ea
mov word [edi], 0x8c
mov bp, 0x8c
test ecx, ecx
je 0x84da9f
movzx eax, bp
cmp eax, 0x8c
je 0x84da07
cmp eax, 0x87
jne 0x84dab6
mov dword [esp + 0x3c], edx
mov ebp, edi
mov edi, dword [esp + 4]
mov ebx, edi
sub ebx, ebp
shr ebx, 1
mov word [edi], 0
sub esp, 4
mov edx, 2
mov ecx, ebp
push dword [esp + 0x3c]
push esi
push dword [esp + 0xa0]
call fcn.0084ff00
add esp, 0x10
mov eax, edi
mov edi, ebp
sub eax, edi
je 0x84da56
mov ecx, dword [esp + 4]
sub ecx, dword [esp + 0x20]
dec ecx
movzx edx, byte [ecx + eax - 4]
mov byte [ecx + eax], dl
dec eax
jne 0x84da4b
add ebx, 2
movzx eax, word [edi]
cmp eax, 0x87
mov ax, 0x84
mov edi, dword [esp + 0x14]
je 0x84da6f
mov ax, 0x89
mov word [ebp], ax
mov eax, dword [esp + 4]
mov word [eax + 4], 0x7b
mov word [eax + 6], bx
add eax, 8
mov dword [esp + 4], eax
mov word [ebp + 2], bx
mov ebx, dword [esp + 0x194]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov ebp, edi
jmp 0x84dac7
mov eax, dword [esp + 0x34]
add eax, 0x79
mov ecx, dword [esp + 0x18]
mov word [ecx], ax
mov ebp, dword [esp + 0x14]
jmp 0x84ddd5
inc ebp
mov word [edi], bp
mov eax, dword [esp + 0x18]
mov word [eax], 0x7b
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
test edi, edi
mov eax, dword [esp + 0xc]
je 0x84dad8
mov word [edi], 0x94
cmp eax, 2
jge 0x84dca8
jmp 0x84ddd5
cmp ecx, 0x2b
jne 0x84e11f
test edx, edx
je 0x84f63c
add edx, dword [esi + 0x40]
jmp 0x84e11f
xor edx, edx
xor ebx, ebx
mov ebp, dword [esp + 0x5c]
jmp 0x84e105
cmp eax, 0x80
mov ebp, dword [esp + 0x20]
ja 0x84ccc7
cmp dword [esp + 0xc], 0
jle 0x84e7bb
mov ebp, dword [esp + 0x14]
jmp 0x84ddd5
lea esi, [ebp + ebp]
and esi, 0xe
sub esp, 4
push esi
lea eax, [esp + 0x158]
push eax
mov edi, ecx
push edi
mov ebp, edx
call sub.msvcrt.dll_memcpy
mov edx, ebp
mov ebp, dword [esp + 0x54]
add esp, 0x10
add edi, esi
mov esi, dword [esp + 0x190]
jmp 0x84e0e2
cmp ecx, 0x7d
sete dh
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xe4]
or ecx, eax
setns dl
mov ecx, dword [esp + 0xe8]
and dl, dh
jne 0x84db8b
mov eax, dword [esp + 0x18]
test dl, dl
jne 0x84db93
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xa8], 0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x50], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], ecx
jmp 0x84c358
mov eax, dword [esp + 0x44]
lea edi, [eax + eax]
and edi, 0xe
sub esp, 4
push edi
lea eax, [esp + 0x158]
push eax
mov dword [esp + 0x2c], ebp
mov ebp, ecx
push ebp
mov dword [esp + 0x4c], edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x4c]
add esp, 0x10
add edi, ebp
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
test ecx, ecx
js 0x84dc18
mov word [edi], cx
mov ecx, dword [esp + 0x24]
mov word [edi + 2], cx
add edi, 4
cmp ebp, 1
jne 0x84dc28
add eax, 0x25
mov word [edi], ax
add edi, 2
jmp 0x84dc35
add eax, 0x27
mov word [edi], ax
mov word [edi + 2], bp
add edi, 4
mov ecx, edi
mov ebp, dword [esp + 0x44]
test ebp, 0x10000000
sete al
or al, byte [esp + 0x5b]
je 0x84dc56
mov word [ecx], bp
add ecx, 2
mov dword [esp + 4], ecx
jmp 0x84dc82
add ebp, ebp
and ebp, 0xe
mov dword [esp + 0x44], ebp
sub esp, 4
push ebp
lea eax, [esp + 0x158]
push eax
mov edi, ecx
push edi
mov ebp, edx
call sub.msvcrt.dll_memcpy
mov edx, ebp
add esp, 0x10
add edi, dword [esp + 0x44]
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
test edi, edi
js 0x84dca8
mov eax, dword [esp + 4]
mov word [eax], di
mov edi, dword [esp + 0x24]
mov word [eax + 2], di
add eax, 4
mov dword [esp + 4], eax
test ecx, ecx
je 0x84ddd5
mov ebx, dword [esp + 0x98]
movzx eax, word [ebx]
lea ecx, [eax - 0x1d]
movzx ecx, cx
cmp ecx, 0x53
mov dword [esp + 0x14], ebp
ja case.0x84dcc9.4
jmp dword [ecx*4 + 0x84fcd0]
cmp dword [esp + 0x88], 0
movzx eax, byte [eax + 0x892804]
lea ebx, [ebx + eax*2]
mov dword [esp + 0x98], ebx
je case.0x84dcc9.4
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xd800
jne case.0x84dcc9.4
add ebx, 2
jmp 0x84dd2e
add ebx, 0x22
jmp 0x84dd2e
movzx eax, byte [0x892861]
movzx ecx, word [ebx + 4]
add ecx, 0xfffffff1
movzx ecx, cx
mov ebp, edx
xor edx, edx
cmp ecx, 2
setb dl
lea eax, [eax + edx*2]
mov edx, ebp
jmp 0x84dd2b
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esp + 0x98], ebx
mov ebp, dword [esp + 4]
sub ebp, ebx
test ebp, ebp
jle 0x84dd56
movzx eax, word [ebx]
cmp eax, 0x75
ja 0x84dd63
movzx eax, byte [eax + 0x891328]
test ax, ax
je 0x84dd63
mov word [ebx], ax
mov ebx, dword [esp + 0x194]
mov ebp, dword [esp + 0x14]
jmp 0x84ddd5
mov dword [esp + 0x3c], edx
mov edi, ebp
shr edi, 1
mov eax, dword [esp + 4]
mov word [eax], 0
sub esp, 4
mov edx, 2
mov ecx, ebx
push dword [esp + 0x3c]
push esi
push dword [esp + 0xa0]
call fcn.0084ff00
add esp, 0x10
movzx eax, byte [ebx + ebp - 1]
mov byte [ebx + ebp + 3], al
dec ebp
jne 0x84dd92
add edi, 2
mov eax, dword [esp + 0x98]
mov word [eax], 0x81
mov ecx, dword [esp + 4]
mov word [ecx + 4], 0x78
mov word [ecx + 6], di
add ecx, 8
mov dword [esp + 4], ecx
mov word [eax + 2], di
mov ebx, dword [esp + 0x194]
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
xor eax, eax
mov cl, byte [esp + 0xa4]
mov al, cl
add eax, eax
or dword [esi + 0x68], eax
xor edi, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x24], edx
jmp 0x84a6f5
test eax, eax
jne 0x84e59d
cmp edi, 1
jne 0x84e59d
mov edi, dword [esp + 0x34]
add edi, 0x66
mov eax, dword [esp + 4]
mov word [eax], di
add eax, 2
mov dword [esp + 4], eax
jmp 0x84d429
mov dword [esp + 0x9c], 1
mov ecx, 0x86
jmp 0x84c901
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
lea ecx, [esp + 0xf8]
jmp 0x84de63
or dword [ebx], esi
jmp 0x84de63
add edx, 2
mov eax, edx
lea ecx, [esp + 0xf4]
mov edx, eax
movzx esi, word [edx]
cmp esi, 0x29
je 0x84e023
movzx eax, si
cmp eax, 0x3a
je 0x84e023
lea eax, [edx + 2]
mov dword [esp + 8], eax
lea esi, [esi - 0x2d]
movzx ebp, si
cmp ebp, 0x4b
ja case.0x84de9a.1
mov esi, 1
mov ebx, ecx
jmp dword [ebp*4 + 0x84fb84]
or byte [ecx + 2], 8
mov esi, 0x400
mov ebx, dword [esp + 0xc4]
jmp case.0x84de9a.60
mov esi, 0x200
mov ebx, ecx
or dword [ebx], esi
jmp 0x84de63
mov esi, 0x40
mov ebx, ecx
or dword [ebx], esi
jmp 0x84de63
mov esi, 2
mov ebx, ecx
or dword [ebx], esi
jmp 0x84de63
mov esi, 4
mov ebx, ecx
or dword [ebx], esi
jmp 0x84de63
mov esi, 8
mov ebx, ecx
or dword [ebx], esi
jmp 0x84de63
sub esp, 4
push 1
push 0x8913b3
push ebp
call fcn.00861180
add esp, 0x10
mov ecx, 4
test eax, eax
je 0x84eaab
jmp case.0x84c78f.2
sub esp, 4
push 4
push 0x8913a0
push ebp
call fcn.00861180
add esp, 0x10
test eax, eax
je 0x84e738
sub esp, 4
push 4
push 0x8913b5
push ebp
call fcn.00861180
add esp, 0x10
test eax, eax
je 0x84e9c5
sub esp, 4
push 4
push 0x8913c0
push ebp
call fcn.00861180
add esp, 0x10
test eax, eax
je 0x84eaa2
sub esp, 4
push 4
push 0x8913c5
push ebp
call fcn.00861180
add esp, 0x10
mov ecx, 8
test eax, eax
mov esi, dword [esp + 4]
je 0x84eaab
jmp case.0x84c78f.2
sub esp, 4
push 5
push 0x8913ba
push ebp
call fcn.00861180
add esp, 0x10
mov ecx, 6
test eax, eax
je 0x84eaab
jmp case.0x84c78f.2
sub esp, 4
push 6
push 0x8913a5
push ebp
call fcn.00861180
add esp, 0x10
test eax, eax
je 0x84e742
sub esp, 4
push 6
push 0x8913ac
push ebp
call fcn.00861180
add esp, 0x10
mov ecx, 3
test eax, eax
je 0x84eaab
jmp case.0x84c78f.2
mov ecx, 6
test ecx, ecx
jne 0x84c637
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
jmp 0x84a6f5
mov eax, dword [esp + 0xf8]
or eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xf4]
not ecx
and ecx, eax
movzx eax, si
cmp eax, 0x29
jne 0x84e6b2
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [esp + 0xd8], eax
xor eax, 1
mov dword [esp + 0xf0], eax
mov eax, ecx
and eax, 1
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x134]
mov dword [eax], ecx
xor edi, edi
mov dword [esp + 0x28], ecx
mov ebx, dword [esp + 0x194]
mov esi, dword [esp + 0x190]
jmp 0x84a6f5
mov dword [esp + 0xa8], 0
test eax, eax
js 0x84e0ca
mov ecx, dword [esp + 0xd4]
test ecx, ecx
jns 0x84e0ca
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0xe8], ecx
or eax, dword [esp + 0x3c]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
jmp 0x84e6e1
add edi, 6
mov eax, dword [esp + 0x34]
add eax, 0x21
mov word [edi], ax
add edi, 2
mov ecx, edi
jmp 0x84dc3b
mov eax, dword [esi + 0x30]
cmp ebx, eax
jge 0x84f588
movzx edx, word [ebp]
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x84e241
mov dword [esp + 0x9c], ecx
mov ebx, dword [esp + 0x194]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x38], eax
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
test ebx, ebx
je 0x84e191
mov ebx, ecx
mov dword [esp + 0x5c], ebp
sub ebx, ecx
sub dword [esp + 0x38], edi
mov eax, dword [esp + 4]
mov word [eax], 0x75
shr ebx, 1
mov word [eax + 2], bx
mov eax, dword [esp + 0x1c]
cmp eax, 0xfffffffe
mov ecx, 0xffffffff
je 0x84e15b
mov ecx, eax
sar dword [esp + 0x38], 1
mov eax, dword [esp + 4]
mov edi, eax
lea eax, [eax + 4]
mov dword [esp + 0xa8], 0
mov ebp, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x194]
jmp 0x84c358
mov eax, dword [esp + 4]
mov word [eax], 0
test edx, edx
mov ebx, ecx
mov dword [esp + 0x30], edi
je 0x84e1c6
sub esp, 4
push edx
push dword [esp + 0x9c]
push ecx
mov edi, edx
mov ebx, ecx
call fcn.00846ec0
mov ecx, ebx
mov edx, edi
mov edi, dword [esp + 0x40]
add esp, 0x10
mov ebx, eax
test ebx, ebx
je 0x84e316
cmp dword [esp + 0x18c], 0
jg 0x84e132
movzx eax, word [ebx + 2]
test ax, ax
jne 0x84e5f0
mov dword [esp + 0x4c], ecx
mov edi, ebp
cmp dword [esp + 0x188], 0
je 0x84f50a
mov esi, dword [esp + 0x188]
mov ecx, dword [esi + 4]
cmp ecx, ebx
jb 0x84f50a
sub esp, 4
mov edx, dword [esp + 8]
push 0
push dword [esp + 0x198]
push dword [esp + 0xa0]
call fcn.00849950
add esp, 0x10
test eax, eax
je 0x84e792
mov esi, dword [esi]
test esi, esi
jne 0x84e204
jmp 0x84f50a
mov dword [esp + 0x9c], 0
cmp dword [esp + 0x194], 0
mov dword [esp + 0x10], edx
je 0x84e344
mov ebx, dword [esp + 0x194]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xfffffffe
mov edx, 0xffffffff
mov eax, 0xffffffff
je 0x84e27e
mov edx, dword [esp + 0x30]
mov eax, ecx
mov ecx, dword [esi + 0x20]
sub ecx, dword [esi + 0x10]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x28]
and ecx, 1
add ecx, 0x71
mov esi, dword [esp + 4]
mov word [esi], cx
mov ecx, dword [esp + 0x10]
mov word [esi + 2], cx
mov esi, 1
shl esi, cl
cmp ecx, 0x20
jl 0x84e2b2
mov esi, 1
mov ecx, dword [esp + 0x190]
or dword [ecx + 0x50], esi
mov esi, ecx
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esi + 0x4c]
jle 0x84e2ce
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x4c], ecx
mov dword [esp + 0x5c], ebp
sar dword [esp + 0x38], 1
mov ecx, dword [esp + 4]
lea ecx, [ecx + 4]
mov esi, dword [esi + 0x24]
test esi, esi
je 0x84e2fc
movzx edi, word [esi + 4]
cmp dword [esp + 0x10], edi
je 0x84e2f6
mov esi, dword [esi]
test esi, esi
jne 0x84e2e4
jmp 0x84e2fc
mov word [esi + 6], 1
mov edi, dword [esp + 4]
mov ebp, ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x190]
jmp 0x84c358
mov dword [esp + 0x4c], ecx
cmp edx, dword [esi + 0x44]
jg 0x84f588
mov eax, dword [esi + 0x3c]
lea ecx, [edi + eax*2 - 0xc8]
cmp ecx, dword [esp + 0x38]
jbe 0x84e4cd
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
jmp 0x84e57d
cmp dword [esi + 0x78], 0
je 0x84e6a2
lea ecx, [ebx + 1]
mov dword [esp + 0x9c], 0
cmp ecx, eax
jge 0x84e7a8
lea esi, [ebp + 2]
mov eax, dword [esp + 0x190]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x5c], ebp
lea edi, [ebp + eax*2]
mov ebp, 1
lea eax, [edi + 2]
sub esp, 8
push eax
push esi
call fcn.00861090
add esp, 0x10
test eax, eax
jne 0x84e3ab
mov eax, dword [esp + 0x190]
mov ecx, eax
mov eax, dword [ecx + 0x34]
lea edi, [edi + eax*2]
lea eax, [ebx + ebp + 1]
inc ebp
cmp eax, dword [ecx + 0x30]
jl 0x84e37e
mov dword [esp + 0xc], edi
mov dword [esp + 0x9c], 0
cmp ebp, 2
jl 0x84ea74
cmp dword [esp + 0x1c], 0xfffffffe
mov dword [esp + 0x10], 0xffffffff
je 0x84e3da
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x190]
mov edx, dword [eax + 0x20]
sub edx, dword [eax + 0x10]
mov eax, dword [esp + 0x28]
and eax, 1
add eax, 0x73
mov ecx, dword [esp + 4]
mov word [ecx], ax
sar edx, 1
mov dword [esp + 0x38], edx
mov word [ecx + 2], bx
mov word [ecx + 4], bp
lea eax, [ecx + 6]
mov dword [esp + 0x14], eax
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x5c], eax
jae 0x84ed84
mov eax, dword [esp + 0x190]
mov ebx, dword [eax + 0x24]
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x1c], ecx
mov ebp, dword [eax + 0x50]
mov edx, dword [eax + 0x4c]
mov edi, dword [esp + 0x5c]
movzx ecx, word [edi]
mov eax, 1
shl eax, cl
cmp ecx, 0x20
mov esi, dword [esp + 0x190]
jb 0x84e466
mov eax, 1
cmp edx, ecx
jl 0x84e46a
test ebx, ebx
jne 0x84e473
jmp 0x84e489
cmp edx, ecx
jge 0x84e460
mov dword [esi + 0x4c], ecx
mov edx, ecx
test ebx, ebx
je 0x84e489
mov esi, ebx
cmp word [esi + 4], cx
je 0x84e483
mov esi, dword [esi]
test esi, esi
jne 0x84e475
jmp 0x84e489
mov word [esi + 6], 1
or ebp, eax
mov eax, dword [esp + 0x1c]
lea edi, [edi + eax*2]
cmp edi, dword [esp + 0xc]
jb 0x84e441
mov dword [esp + 0x5c], edi
mov esi, dword [esp + 0x190]
mov dword [esi + 0x50], ebp
mov dword [esp + 0x9c], 0
mov edi, dword [esp + 4]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x194]
jmp 0x84c358
mov dword [esp + 0x10], edx
mov edi, ebp
lea ebp, [eax + eax]
cmp ebp, 0x32001
jl 0x84e4e3
mov ebp, 0x32000
cmp eax, 0x31fff
mov ecx, 0x48
jg 0x84f6c5
mov edx, ebp
sub edx, eax
cmp edx, 0x64
jl 0x84f6c5
lea eax, [ebp + ebp]
sub esp, 0xc
push eax
call dword [0x891040]
add esp, 0x10
mov ebx, eax
test ebx, ebx
je 0x84f6c0
mov esi, dword [esp + 0x190]
mov eax, dword [esi + 0x3c]
add eax, eax
sub esp, 4
push eax
push dword [esi + 0x10]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x20]
sub eax, ecx
add eax, ebx
mov dword [esi + 0x20], eax
cmp dword [esi + 0x3c], 0x801
jl 0x84e55d
sub esp, 0xc
push ecx
call dword [0x891044]
add esp, 0x10
mov eax, dword [esi + 0x20]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x3c], ebp
mov ecx, dword [esp + 0x174]
mov dword [ecx], 0
mov ecx, dword [esi + 0x14]
mov ebp, edi
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x4c]
lea ebx, [ebx + edx*2]
mov edx, dword [esp + 4]
lea edx, [edx + 2]
sub edx, ecx
shr edx, 1
mov word [eax], dx
add eax, 2
mov dword [esi + 0x20], eax
jmp 0x84e132
mov eax, edi
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
add esi, 0x68
mov ecx, eax
cmp eax, 0xffffffff
mov eax, dword [esp + 4]
mov word [eax], si
mov esi, dword [esp + 0xc]
mov word [eax + 2], si
jne 0x84e5c2
xor ecx, ecx
mov eax, dword [esp + 4]
mov word [eax + 4], cx
add eax, 6
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x194]
mov esi, dword [esp + 0x190]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x84dcb0
jmp 0x84ddd5
mov esi, dword [esp + 0x190]
mov edi, dword [esp + 0x30]
jmp 0x84e132
lea ecx, [ebp - 0x1d]
cmp ecx, 5
ja 0x84e646
mov eax, dword [esp + 8]
add eax, 2
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax*4 + 0x89129c]
add eax, 0xfffffffe
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], edx
jmp 0x84a6f5
cmp eax, 0x11
mov edi, dword [esp + 4]
jb 0x84e651
xor edi, edi
mov eax, dword [esi + 0x20]
sub eax, dword [esi + 0x10]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x10]
mov eax, ecx
xor eax, 0xe
or eax, dword [esp + 0x94]
mov ax, 0xd
je 0x84e673
mov eax, ecx
sar dword [esp + 0x38], 1
mov ebp, dword [esp + 4]
mov word [ebp], ax
add ebp, 2
jmp 0x84bdb6
mov eax, dword [esp + 0xc]
mov dword [esp + 0x9c], eax
mov ebx, dword [esp + 0x194]
mov ebp, dword [esp + 0x5c]
jmp 0x84e11f
mov dword [esp + 0x9c], 0
jmp 0x84e25e
add edx, 2
mov dword [esp + 8], edx
mov ebx, 0x83
xor edi, edi
xor ebp, ebp
mov esi, dword [esp + 0x190]
jmp 0x84c380
mov eax, dword [esp + 0xfc]
mov dword [esp + 4], eax
xor dword [esp + 0xa8], 1
mov ebx, dword [esp + 0x194]
mov esi, dword [esp + 0x190]
mov ecx, dword [esp + 0xd4]
test ecx, ecx
jns 0x84e704
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
jmp 0x84e70b
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], edx
mov eax, dword [esp + 4]
mov dword [esp + 0x40], eax
jmp 0x84c358
mov ecx, 1
jmp 0x84eaab
test ebx, ebx
jne 0x84f62a
mov eax, dword [esp + 0x190]
mov dword [eax + 0x6c], 1
mov eax, dword [eax + 0x24]
test eax, eax
je 0x84eb74
mov edx, dword [esp + 0x194]
mov esi, dword [esp + 4]
test edx, edx
je 0x84e777
add dword [edx], 3
jmp 0x84e787
mov word [esi], 0xa0
movzx ecx, word [eax + 4]
mov word [esi + 2], cx
add esi, 4
mov eax, dword [eax]
test eax, eax
jne 0x84e76e
jmp 0x84eb78
mov esi, dword [esp + 0x190]
mov ebp, edi
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
jmp 0x84e132
mov ebx, dword [esp + 0x194]
mov esi, dword [esp + 0x190]
jmp 0x84e265
xor eax, eax
test ebp, ebp
setne al
mov ebp, eax
jmp 0x84ccc7
movzx edx, word [ecx + 6]
cmp edx, 0x3f
mov edx, eax
jne 0x84e809
movzx edx, word [ecx + 8]
cmp edx, 0x43
mov edx, eax
jne 0x84e809
lea edx, [ecx + 0xa]
movzx esi, word [edx]
lea edi, [esi - 0x30]
movzx edi, di
add edx, 2
cmp edi, 0xa
jb 0x84e7e2
movzx esi, si
cmp esi, 0x29
je 0x84e7fd
mov edx, eax
movzx eax, word [edx]
cmp eax, 0x28
jne 0x84f709
movzx eax, word [edx + 2]
cmp eax, 0x3f
jne 0x84e9cf
movzx eax, word [edx + 4]
cmp eax, 0x21
je 0x84e845
movzx eax, ax
cmp eax, 0x3d
je 0x84e845
cmp eax, 0x3c
jne 0x84e9cf
movzx eax, word [edx + 6]
cmp eax, 0x3d
je 0x84e845
movzx eax, ax
cmp eax, 0x21
jne 0x84e9cf
mov esi, dword [esp + 0x190]
mov dword [esi + 0x80], 1
mov ebx, 0x87
jmp 0x84ebdd
movzx edx, word [ecx + 6]
cmp edx, 0x21
je 0x84ebc7
movzx esi, dx
cmp esi, 0x3d
jne 0x84ebe8
mov esi, dword [esp + 0x190]
inc dword [esi + 0x5c]
add ecx, 8
mov dword [esp + 8], ecx
mov ebx, 0x7f
jmp 0x84ebdd
inc dword [esi + 0x5c]
add ecx, 6
mov dword [esp + 8], ecx
mov ebx, 0x7d
jmp 0x84ebdd
add ecx, 6
mov dword [esp + 8], ecx
mov ebx, 0x81
jmp 0x84ebdd
mov eax, dword [esp + 4]
mov word [eax], 0x76
lea eax, [ecx + 6]
mov dword [esp + 8], eax
movzx ebp, word [ecx + 6]
mov ecx, ebp
add ecx, 0xffffffd0
movzx edx, cx
xor ecx, ecx
cmp edx, 9
ja 0x84e900
xor ecx, ecx
lea ecx, [ecx + ecx*4]
movzx edx, bp
lea ecx, [edx + ecx*2 - 0x30]
movzx ebp, word [eax + 2]
add eax, 2
mov edx, ebp
add edx, 0xffffffd0
movzx edx, dx
cmp edx, 0xa
jb 0x84e8de
mov dword [esp + 8], eax
mov edx, dword [esp + 4]
lea edx, [edx + 2]
movzx esi, bp
cmp esi, 0x29
jne 0x84ea8b
cmp ecx, 0x100
jl 0x84ed99
mov eax, dword [esp + 0x174]
mov dword [eax], 0x26
mov eax, 6
jmp 0x84edbd
lea eax, [ecx + 6]
mov dword [esp + 8], eax
movzx ecx, word [ecx + 6]
mov edx, ecx
add edx, 0xffffffc3
movzx edx, dx
cmp edx, 2
jae 0x84ebb2
movzx ecx, cx
xor edx, edx
cmp ecx, 0x3e
sete dl
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], 0x29
mov ebx, dword [esp + 0x194]
mov esi, dword [esp + 0x190]
jmp case.0x84c02a.5
lea eax, [ecx + 6]
mov dword [esp + 8], eax
movzx eax, word [ecx + 6]
xor edx, edx
cmp eax, 0x29
mov ebp, dword [esp + 0x5c]
je 0x84e11f
jmp 0x84f5d0
mov dword [esi + 0x7c], 1
mov dword [esp + 0x10], 1
add ecx, 6
mov dword [esp + 8], ecx
mov ebx, 0x83
xor edi, edi
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x10]
jmp 0x84c380
mov ecx, 5
jmp 0x84eaa7
lea ebx, [ecx + 6]
mov eax, dword [esp + 4]
mov word [eax + 4], 0x8d
mov dword [esp + 8], ebx
movzx eax, word [ebx]
mov edx, eax
add edx, 0xffffffd9
movzx edx, dx
cmp edx, 0x2b
ja case.0x84e9f4.1
jmp dword [edx*4 + 0x84fad4]
movzx eax, ax
mov dword [esp + 0x20], eax
lea ebx, [ecx + 8]
mov dword [esp + 8], ebx
mov ax, word [ecx + 8]
lea ecx, [eax - 0x30]
movzx ecx, cx
cmp ecx, 9
ja 0x84ef39
add ebx, 2
xor ecx, ecx
cmp ecx, 0xccccccc
jge 0x84f6a2
movzx eax, ax
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [esp + 8], ebx
movzx eax, word [ebx]
mov edx, eax
add edx, 0xffffffd0
movzx edx, dx
add ebx, 2
cmp edx, 0xa
jb 0x84ea21
add ebx, 0xfffffffe
mov dl, 1
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 0xffffffff
mov ebp, ebx
xor ebx, ebx
jmp 0x84f082
mov ebx, dword [esp + 0x194]
mov esi, dword [esp + 0x190]
mov ebp, dword [esp + 0x5c]
jmp 0x84e265
mov eax, dword [esp + 0x174]
mov dword [eax], 0x27
mov eax, 6
jmp 0x84edbd
mov ecx, 7
mov esi, dword [esp + 4]
lea eax, [ecx + ecx*2]
test ebx, ebx
je 0x84eae7
mov edx, edi
add ecx, 0xfffffffe
cmp ecx, 3
jbe 0x84f62a
mov edi, dword [esp + 0x194]
test edi, edi
mov esi, dword [eax*4 + 0x8913d4]
mov ebp, dword [esp + 4]
mov word [ebp], si
je 0x84eb09
add dword [edi], ebx
mov word [ebp + 2], 0
add ebp, 4
jmp 0x84eb25
cmp ecx, 1
jbe 0x84f690
movzx eax, word [eax*4 + 0x8913d0]
mov word [esi], ax
add esi, 2
mov edx, esi
mov ebx, dword [esp + 0x194]
jmp 0x84eb35
lea eax, [ebp + 4]
mov word [ebp + 2], bx
lea ecx, [ebx + ebx]
sub esp, 4
push ecx
push edx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
lea ebp, [ebp + ebx*2 + 4]
mov ebx, edi
movzx eax, si
mov word [ebp], 0
add ebp, 2
mov edx, ebp
mov esi, dword [esp + 0x190]
lea ecx, [eax - 0x96]
movzx ecx, cx
cmp ecx, 4
jae 0x84eb53
mov dword [esi + 0x70], 1
jmp 0x84eb6b
add eax, 0xffffff66
movzx eax, ax
cmp eax, 1
ja 0x84eb6b
mov eax, dword [esp + 0xc4]
or byte [eax + 1], 0x10
xor edi, edi
mov ebp, edx
jmp 0x84c358
mov esi, dword [esp + 4]
xor eax, eax
mov ecx, dword [esp + 0x190]
cmp dword [ecx + 0x5c], 0
setg al
or eax, 0x9e
mov edx, esi
mov word [esi], ax
cmp dword [esp + 0x1c], 0xfffffffe
mov ecx, 0xffffffff
je 0x84eba2
mov ecx, dword [esp + 0x1c]
add edx, 2
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x194]
jmp 0x84eb35
mov dword [esp + 0x20], 0x3e
movzx ecx, cx
cmp ecx, 0x3c
je case.0x84c02a.6
jmp 0x84f6e5
mov esi, dword [esp + 0x190]
inc dword [esi + 0x5c]
add ecx, 8
mov dword [esp + 8], ecx
mov ebx, 0x80
xor edi, edi
mov ecx, dword [esp + 0x28]
jmp 0x84c37e
cmp edx, 0xff
ja 0x84f731
mov esi, dword [esp + 0x190]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], 0x3e
test byte [esi + edx], 0x10
je 0x84f731
mov edi, dword [esp + 0x20]
lea ecx, [eax + 2]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ecx
movzx ecx, word [eax + 2]
lea edx, [ecx - 0x30]
movzx edx, dx
cmp edx, 9
jbe 0x84f556
movzx edx, cx
cmp edx, 0xff
ja 0x84ec77
mov edx, dword [esp + 0x190]
mov edx, dword [edx + 0xc]
add eax, 4
movzx esi, cx
test byte [edx + esi], 0x10
je 0x84ec65
mov dword [esp + 8], eax
movzx ecx, word [eax]
add eax, 2
cmp ecx, 0x100
jb 0x84ec4a
add eax, 0xfffffffe
cmp dword [esp + 0x194], 0
jne 0x84ec89
jmp 0x84ef24
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x194], 0
je 0x84ef24
movzx ecx, cx
cmp edi, ecx
jne 0x84f59a
mov ecx, dword [esp + 0x190]
mov ecx, dword [ecx + 0x30]
cmp ecx, 0x2710
jge 0x84f6f7
sub eax, dword [esp + 0xc]
mov ebx, eax
sar ebx, 1
mov edx, dword [esp + 0x190]
mov esi, edx
mov edx, dword [esi + 0x40]
mov dword [esp + 0x10], edx
mov edi, ebx
lea edx, [ebx + 2]
cmp edx, dword [esi + 0x34]
jle 0x84ecdf
mov esi, dword [esp + 0x190]
mov dword [esi + 0x34], edx
cmp eax, 0x41
jge 0x84f5be
inc dword [esp + 0x10]
test ecx, ecx
jle 0x84ed59
mov esi, dword [esp + 0x190]
mov ebp, dword [esi + 0x28]
add ebp, 8
xor ebx, ebx
jmp 0x84ed23
mov eax, dword [esp + 0x10]
cmp dword [ebp], eax
je 0x84f174
test dword [esp + 0x28], 0x80000
je 0x84f6d3
mov esi, dword [esp + 0x190]
mov dword [esi + 0x78], 1
jmp 0x84ed4c
cmp edi, dword [ebp - 4]
jne 0x84ed3f
sub esp, 4
push edi
push dword [ebp - 8]
push dword [esp + 0x18]
call fcn.00861130
add esp, 0x10
test eax, eax
je 0x84ecf8
mov eax, dword [esp + 0x10]
cmp dword [ebp], eax
je 0x84f67e
inc ebx
mov ecx, dword [esi + 0x30]
add ebp, 0xc
cmp ebx, ecx
jl 0x84ed23
jmp 0x84ed5b
xor ebx, ebx
cmp ebx, ecx
jl 0x84ef24
mov eax, dword [esp + 0x190]
mov ebx, dword [eax + 0x38]
cmp ecx, ebx
jge 0x84ee91
mov eax, dword [esp + 0x190]
mov ebp, dword [eax + 0x28]
jmp 0x84ef02
mov edi, dword [esp + 4]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
jmp 0x84ee7e
mov edx, dword [esp + 4]
mov word [edx + 2], cx
mov ecx, dword [esp + 0x190]
sub eax, dword [ecx + 0x18]
shr eax, 1
inc eax
mov word [edx + 4], ax
mov word [edx + 6], 0
lea edx, [edx + 8]
xor eax, eax
test eax, eax
mov ecx, 4
je 0x84edca
mov ecx, eax
jmp 0x84edcc
mov edi, eax
mov dword [esp + 0xdc], 1
mov eax, dword [esp + 4]
mov dword [esp + 0x84], eax
mov ebx, dword [esp + 0x194]
mov esi, dword [esp + 0x190]
test ecx, ecx
jne 0x84d976
jmp 0x84a0b0
movzx eax, ax
cmp eax, 0x7b
jne 0x84ee6f
movzx eax, word [ecx + 0xa]
add eax, 0xffffffd0
movzx eax, ax
cmp eax, 9
ja 0x84ee6f
add ecx, 0xe
movzx eax, word [ecx - 2]
lea edx, [eax - 0x30]
movzx edx, dx
add ecx, 2
cmp edx, 0xa
jb 0x84ee17
movzx eax, ax
cmp eax, 0x7d
je 0x84c062
cmp eax, 0x2c
jne 0x84ee6f
movzx eax, word [ecx - 2]
cmp eax, 0x7d
je 0x84c062
add eax, 0xffffffd0
movzx eax, ax
cmp eax, 9
ja 0x84ee6f
movzx eax, word [ecx]
lea edx, [eax - 0x30]
movzx edx, dx
add ecx, 2
cmp edx, 0xa
jb 0x84ee52
movzx eax, ax
cmp eax, 0x7d
je 0x84c062
mov ebp, dword [esp + 4]
mov word [ebp], 0x9d
add ebp, 2
xor edi, edi
mov ebx, dword [esp + 0x194]
mov esi, dword [esp + 0x190]
jmp 0x84c358
lea eax, [ebx*8]
lea eax, [eax + eax*2]
sub esp, 0xc
push eax
call dword [0x891040]
add esp, 0x10
mov ebp, eax
test ebp, ebp
je 0x84f74a
add ebx, ebx
mov eax, dword [esp + 0x190]
mov esi, eax
mov eax, dword [esi + 0x38]
shl eax, 2
lea eax, [eax + eax*2]
sub esp, 4
push eax
push dword [esi + 0x28]
push ebp
call sub.msvcrt.dll_memcpy
add esp, 0x10
cmp dword [esi + 0x38], 0x15
jl 0x84eef2
sub esp, 0xc
mov eax, dword [esp + 0x19c]
push dword [eax + 0x28]
call dword [0x891044]
add esp, 0x10
mov eax, dword [esp + 0x190]
mov dword [eax + 0x28], ebp
mov dword [eax + 0x38], ebx
mov ecx, dword [eax + 0x30]
lea eax, [ecx + ecx*2]
mov edx, dword [esp + 0xc]
mov dword [ebp + eax*4], edx
mov dword [ebp + eax*4 + 4], edi
mov edx, dword [esp + 0x10]
mov dword [ebp + eax*4 + 8], edx
inc ecx
mov eax, dword [esp + 0x190]
mov dword [eax + 0x30], ecx
add dword [esp + 8], 2
mov esi, dword [esp + 0x190]
mov ecx, dword [esp + 0x28]
jmp 0x84c0b2
mov dl, 1
xor ecx, ecx
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 0xffffffff
mov ebp, ebx
mov ebx, 0
mov dword [esp + 0x14], 0
jmp 0x84f082
add ecx, 8
mov dword [esp + 8], ecx
mov dword [esp + 0x14], 0x27
jmp 0x84efca
lea ecx, [eax - 0x30]
movzx ecx, cx
mov dword [esp + 0x20], 0
cmp ecx, 9
mov dword [esp + 0x14], 0
jbe 0x84ea0d
jmp 0x84efcf
add ecx, 8
mov dword [esp + 8], ecx
mov dword [esp + 0x14], 0x3e
jmp 0x84efca
movzx eax, word [ecx + 8]
cmp eax, 0x26
jne 0x84f163
add ecx, 0xa
mov dword [esp + 8], ecx
mov eax, dword [esp + 4]
mov word [eax + 4], 0x8f
mov dword [esp + 0x14], 0xffffffff
mov ebx, ecx
mov ax, word [ebx]
lea ecx, [eax - 0x30]
movzx ecx, cx
cmp ecx, 9
jbe 0x84f556
movzx ecx, ax
cmp ecx, 0xff
ja 0x84f709
movzx eax, ax
mov ecx, dword [esp + 0x190]
mov ecx, dword [ecx + 0xc]
test byte [ecx + eax], 0x10
je 0x84f709
lea ebp, [ebx + 2]
mov dword [esp + 8], ebp
movzx eax, word [ebx + 2]
cmp eax, 0xff
ja 0x84f037
lea ebp, [ebx + 4]
movzx edx, ax
test byte [ecx + edx], 0x10
je 0x84f034
mov dword [esp + 8], ebp
movzx eax, word [ebp]
add ebp, 2
cmp eax, 0xff
jbe 0x84f019
add ebp, 0xfffffffe
mov ecx, ebp
sub ecx, ebx
sar ecx, 1
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x14], 0
jle 0x84f06b
lea edx, [ebp + 2]
mov dword [esp + 8], edx
cmp ax, word [esp + 0x14]
jne 0x84f71b
mov ax, word [edx]
mov dword [esp + 0x20], 0xffffffff
xor ecx, ecx
mov ebp, edx
jmp 0x84f075
mov dword [esp + 0x20], 0xffffffff
xor ecx, ecx
mov edx, dword [esp + 0xec]
mov dword [esp + 0xc], edx
xor edx, edx
lea esi, [ebp + 2]
mov dword [esp + 8], esi
movzx eax, ax
cmp eax, 0x29
jne 0x84f71b
cmp dword [esp + 0x194], 0
je 0x84f0ba
mov ebx, 0x87
xor ebp, ebp
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x190]
mov edi, dword [esp + 0xc]
jmp 0x84c380
test dl, dl
je 0x84f0fc
test ecx, ecx
jle 0x84f75c
cmp dword [esp + 0x20], 0
je 0x84f19d
cmp dword [esp + 0x20], 0x2d
jne 0x84f18b
mov eax, 1
sub eax, ecx
mov ecx, dword [esp + 0x190]
add eax, dword [ecx + 0x40]
mov ecx, eax
test ecx, ecx
jg 0x84f19d
jmp 0x84f588
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x5c], ecx
mov eax, dword [eax + 0x30]
xor ebp, ebp
test eax, eax
jle 0x84f1ed
mov esi, dword [esp + 0x5c]
lea eax, [esi + 2]
sub esp, 4
push dword [esp + 0x14]
push eax
push ebx
call fcn.00861130
add esp, 0x10
test eax, eax
jne 0x84f143
mov eax, dword [esp + 0x10]
cmp word [esi + eax*2 + 2], 0
je 0x84f1e3
mov eax, dword [esp + 0x190]
mov ecx, eax
mov eax, dword [ecx + 0x30]
mov ecx, dword [ecx + 0x34]
lea esi, [esi + ecx*2]
mov dword [esp + 0x5c], esi
inc ebp
cmp ebp, eax
jl 0x84f117
jmp 0x84f1ed
mov dword [esp + 0x14], 0
mov ax, 0x52
jmp 0x84efed
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 0x30]
cmp ebx, ecx
jge 0x84ed63
jmp 0x84ef24
mov eax, dword [esp + 0x190]
add ecx, dword [eax + 0x40]
test ecx, ecx
jle 0x84f588
mov eax, dword [esp + 0x190]
cmp ecx, dword [eax + 0x44]
jg 0x84f588
mov eax, dword [esp + 4]
mov word [eax + 6], cx
mov eax, dword [esp + 0x190]
cmp ecx, dword [eax + 0x4c]
jle 0x84f09f
mov esi, dword [esp + 0x190]
mov dword [esi + 0x4c], ecx
mov ebx, 0x87
xor ebp, ebp
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0xc]
jmp 0x84c380
mov eax, dword [esp + 0x190]
mov eax, dword [eax + 0x30]
cmp ebp, eax
jge 0x84f29e
mov ecx, dword [esp + 0x5c]
movzx ecx, word [ecx]
mov word [esp + 0x14], cx
movzx ecx, cx
mov edx, dword [esp + 0x190]
cmp dword [edx + 0x4c], ecx
jge 0x84f21a
mov edx, dword [esp + 0x190]
mov dword [edx + 0x4c], ecx
lea ecx, [ebp + 1]
cmp ecx, eax
jge 0x84f2ff
mov edi, 1
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x190]
mov ecx, dword [ecx + 0x34]
lea esi, [eax + ecx*2 + 2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x5c], eax
sub esp, 4
push dword [esp + 0x14]
push esi
push ebx
call fcn.00861130
add esp, 0x10
test eax, eax
jne 0x84f274
mov eax, dword [esp + 0x10]
cmp word [esi + eax*2], 0
jne 0x84f274
lea eax, [ebp + edi + 1]
inc edi
mov ecx, dword [esp + 0x190]
cmp eax, dword [ecx + 0x30]
jl 0x84f22a
cmp edi, 2
jl 0x84f2ff
mov eax, dword [esp + 4]
mov word [eax + 6], bp
mov word [eax + 8], di
mov edi, dword [esp + 0xc]
inc edi
inc word [eax + 4]
mov ebx, 0x87
xor ebp, ebp
jmp 0x84f34d
cmp dword [esp + 0x14], 0
jne 0x84f588
movzx eax, word [ebx]
cmp eax, 0x52
jne 0x84f311
cmp dword [esp + 0x10], 2
jl 0x84f35d
xor eax, eax
mov ecx, 1
movzx edx, word [ebx + ecx*2]
lea esi, [edx - 0x30]
movzx esi, si
cmp esi, 0xa
jae 0x84f588
cmp eax, 0xccccccc
jge 0x84f4e6
lea eax, [eax + eax*4]
lea eax, [edx + eax*2 - 0x30]
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x84f2c3
test eax, eax
mov ecx, dword [esp + 4]
mov word [ecx + 4], 0x8f
jne 0x84f36b
jmp 0x84f367
mov eax, dword [esp + 4]
movzx ecx, word [esp + 0x14]
mov word [eax + 6], cx
jmp 0x84f09f
cmp dword [esp + 0x10], 6
jne 0x84f588
sub esp, 4
push 6
push 0x891438
push ebx
call fcn.00861180
add esp, 0x10
test eax, eax
jne 0x84f588
mov eax, dword [esp + 4]
mov word [eax + 4], 0x91
mov ebx, 0x87
xor ebp, ebp
mov edi, 1
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x190]
jmp 0x84c380
mov eax, dword [esp + 4]
mov word [eax + 4], 0x8f
mov ax, 0xffff
mov ecx, dword [esp + 4]
mov word [ecx + 6], ax
jmp 0x84f09f
lea eax, [ecx + edx*2]
cmp esi, eax
mov eax, 0x57
jb 0x84f389
mov eax, 0x34
mov ecx, dword [esp + 0x174]
mov dword [ecx], eax
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x34
jmp 0x84f41b
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
mov eax, dword [esp + 0x13c]
mov edx, dword [esp + 4]
mov dword [eax], edx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x170]
mov dword [ecx], eax
test ebx, ebx
je 0x84f454
mov eax, dword [ebx]
mov ecx, 0x7fffffeb
sub ecx, eax
sub edx, dword [esp + 0xb8]
sar edx, 1
cmp ecx, edx
jge 0x84f450
mov eax, dword [esp + 0x174]
mov dword [eax], 0x14
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x170]
mov dword [ecx], eax
xor eax, eax
add esp, 0x15c
pop esi
pop edi
pop ebx
pop ebp
ret
movzx eax, ax
cmp eax, 0x3a
mov eax, 0xd
je 0x84f389
mov eax, 0x1f
jmp 0x84f389
add eax, edx
mov dword [ebx], eax
mov eax, 1
jmp 0x84f42a
mov eax, dword [esp + 0x174]
mov dword [eax], 0x47
jmp 0x84f41b
mov eax, 0x15
jmp 0x84f389
mov eax, dword [esp + 0x174]
mov dword [eax], 0x3c
jmp 0x84f41b
mov ecx, 5
mov edx, dword [esp + 0x174]
mov dword [edx], ecx
mov dword [esp + 8], eax
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 9
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x12
jmp 0x84f41b
add eax, 0xfffffffe
movzx ecx, word [eax + 2]
add eax, 2
add ecx, 0xffffffd0
movzx ecx, cx
cmp ecx, 0xa
jb 0x84f4d0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x174]
mov dword [eax], 0x3d
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x40
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x28
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x52
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0xe
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0xc
mov dword [esp + 8], edx
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x54
jmp 0x84f41b
cmp ecx, 6
je 0x84f41b
jmp 0x84f42a
mov eax, dword [esp + 0x174]
mov dword [eax], 0x45
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0xf
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x2a
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x3e
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x30
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x1d
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x36
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x1b
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0xb
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x3f
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x3b
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x3a
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 7
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x4b
jmp 0x84f41b
mov ecx, 4
mov eax, edx
jmp 0x84f488
mov eax, dword [esp + 0x174]
mov dword [eax], 0x41
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x42
jmp 0x84f41b
add ebx, 0xfffffffe
movzx eax, word [ebx + 2]
add ebx, 2
add eax, 0xffffffd0
movzx eax, ax
cmp eax, 0xa
jb 0x84f6a5
mov dword [esp + 8], ebx
jmp 0x84f4e6
mov ecx, 0x15
mov eax, dword [esp + 0x174]
mov dword [eax], ecx
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x2b
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x29
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x31
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x1c
jmp 0x84f41b
mov dword [esp + 8], ebp
mov eax, dword [esp + 0x174]
mov dword [eax], 0x1a
jmp 0x84f41b
add ecx, 6
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x174]
mov dword [eax], 0x18
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x15
jmp 0x84f41b
mov eax, dword [esp + 0x174]
mov dword [eax], 0x23
jmp 0x84f41b