Function at 0x30fbdc0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x460
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0x41da47d9
mov dword [esp + 0x60], 0x4de143ef
mov dword [esp + 0x64], 0x49184fdb
mov dword [esp + 0x68], 0xb5d24be7
mov dword [esp + 0x6c], 0xb1b6b71b
mov word [esp + 0x70], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0x15
ja 0x30faf7b
nop
mov eax, dword [esp + 0x24]
movzx eax, byte [esp + eax + 0x5c]
push dword [esp + 0x24]
push eax
call fcn.030fef30
add esp, 8
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x5c], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0x16
jb 0x30faf50
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x4c]
push eax
call fcn.03112030
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x312104c]
lea ecx, [esp + 0x4c]
push 0x410
call fcn.03112230
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x3121054]
mov dword [esp + 0x5c], 0xd60fc0ed
mov dword [esp + 0x60], 0xc8def5e8
mov dword [esp + 0x64], 0xdcd5dff9
mov dword [esp + 0x68], 0x132adafd
mov dword [esp + 0x6c], 0x2807fe12
mov dword [esp + 0x70], 0x2b0cfa05
mov dword [esp + 0x74], 0x2e110a16
mov dword [esp + 0x78], 0x32eb2c07
mov dword [esp + 0x7c], 0xea18021e
mov dword [esp + 0x80], 0x3ae7fd19
mov dword [esp + 0x84], 0xa7f61919
mov word [esp + 0x88], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0x2d
ja 0x30fb05b
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
movzx eax, byte [esp + eax + 0x5c]
push dword [esp + 0x24]
push eax
call fcn.030fefb0
add esp, 8
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x5c], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0x2e
jb 0x30fb030
lea eax, [esp + 0x24]
lea ecx, [esp + 0x4c]
push 0
push 0x2b
lea edx, [esp + 0x64]
push edx
push eax
call fcn.03112de0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
xor eax, eax
cmp edi, esi
sete al
jmp dword [eax*4 + 0x312105c]
mov eax, esi
sub eax, edi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.030dc610
add esp, 4
mov dword [esp + 0x3c], 0
xor ecx, ecx
mov dword [esp + 0x40], esi
cmp edi, esi
setne cl
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
jmp dword [ecx*4 + 0x3121064]
mov edi, dword [esp + 0x44]
add edi, 8
xor eax, eax
cmp edi, dword [esp + 0x40]
setne al
jmp dword [eax*4 + 0x3121064]
mov esi, dword [edi]
mov dword [esp + 0x44], edi
mov edi, dword [edi + 4]
push 0x400
push 0
lea ebx, [esp + 0x64]
push ebx
call fcn.030dc690
add esp, 0xc
lea eax, [esp + 0x18]
lea ecx, [esp + 0x4c]
push eax
push 0
push 0x400
push ebx
push edi
push esi
call fcn.03112b70
cmp eax, 0xc0000000
setae al
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x1c]
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x3121074]
mov eax, 1
jmp dword [eax*4 + 0x312107c]
xor eax, eax
jmp dword [eax*4 + 0x312107c]
mov byte [esp + 0x45b], 0
movzx eax, byte [esp + 0x5c]
xor esi, esi
test al, al
je 0x30fb171
lea ecx, [esp + 0x5c]
cmp al, 0x2e
je 0x30fb16f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x30fb160
jmp 0x30fb171
mov esi, ecx
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x3121084]
movzx eax, byte [esi + 1]
inc esi
xor edi, edi
test al, al
je 0x30fb1a1
mov ecx, esi
nop
nop
nop
nop
cmp al, 0x2e
je 0x30fb19f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x30fb190
jmp 0x30fb1a1
mov edi, ecx
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x312108c]
mov dword [esp + 0x14], esi
mov dword [esp + 0x48], edi
jmp dword [0x3121094]
mov edx, edi
sub edx, esi
mov eax, edx
and eax, 0xfffffffc
mov ecx, edx
and ecx, 3
mov ebx, edx
or ebx, 3
imul ebx, ecx
xor ecx, 3
imul ecx, eax
add ebx, ecx
mov eax, edx
and eax, 0xfffffffe
add eax, eax
mov ecx, edx
xor ecx, 1
sub eax, ecx
shr ebx, 2
movzx eax, byte [esi + eax]
cmp eax, 0x3d
je 0x30fb1fa
cmp eax, 0x2e
jne 0x30fb1fb
dec ebx
movzx eax, byte [esi + edx - 2]
cmp eax, 0x3d
mov dword [esp + 8], edx
je 0x30fb20e
cmp eax, 0x2e
jne 0x30fb20f
dec ebx
mov dword [esp + 0x38], ebx
lea eax, [ebx + 1]
push eax
call fcn.030dc610
add esp, 4
mov dword [esp + 0xc], eax
cmp edi, esi
je 0x30fb34a
xor edi, edi
mov esi, 2
jmp 0x30fb252
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 4]
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
mov edi, ecx
cmp esi, ebx
mov esi, eax
jae 0x30fb34a
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.030f0440
add esp, 4
mov byte [esp + 0x10], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.030f0440
add esp, 4
mov edx, eax
xor al, 0xc0
mov ecx, edx
or cl, 0x30
and cl, al
movzx eax, byte [esp + 0x10]
shl al, 2
shr cl, 4
add cl, al
mov eax, dword [esp + 0xc]
mov byte [eax + edi], cl
lea ecx, [edi + 1]
mov ebx, dword [esp + 8]
cmp esi, ebx
jae 0x30fb240
mov byte [esp + 4], dl
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + esi]
push eax
mov edi, ecx
call fcn.030f0440
mov ecx, edi
mov ebx, dword [esp + 0xc]
add esp, 4
cmp al, 0x40
je 0x30fb240
mov ah, byte [esp + 4]
shl ah, 4
mov ecx, eax
xor cl, 0xc0
mov edx, eax
or dl, 0x3c
and dl, cl
shr dl, 2
add dl, ah
mov edi, dword [esp + 0x10]
lea ecx, [edi + 2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx + edi + 1], dl
mov ebx, dword [esp + 8]
lea ecx, [esi + 1]
cmp ecx, ebx
jae 0x30fb238
mov ebx, eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.030f0440
add esp, 4
cmp al, 0x40
je 0x30fb234
shl bl, 6
add al, bl
mov edx, dword [esp + 0x10]
mov ecx, edx
and ecx, 1
mov edi, dword [esp + 4]
xor edi, 1
lea edi, [edi + ecx*2]
mov ecx, dword [esp + 0xc]
mov byte [ecx + edx + 2], al
mov ecx, edi
mov ebx, dword [esp + 8]
jmp 0x30fb240
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
mov byte [ecx + eax], 0
push ecx
call fcn.030d3bb0
add esp, 4
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x48]
jmp case.0x30fb1a8.2
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0xc]
mov byte [ebx + eax], 0
push ebx
call fcn.030d3bb0
add esp, 4
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x48]
jmp dword [0x312109c]
mov edx, edi
sub edx, esi
mov eax, edx
and eax, 0xfffffffc
mov ecx, edx
and ecx, 3
mov ebx, edx
or ebx, 3
imul ebx, ecx
xor ecx, 3
imul ecx, eax
add ebx, ecx
mov eax, edx
and eax, 0xfffffffe
add eax, eax
mov ecx, edx
xor ecx, 1
sub eax, ecx
shr ebx, 2
movzx eax, byte [esi + eax]
cmp eax, 0x3d
je 0x30fb3d0
cmp eax, 0x2e
jne 0x30fb3d1
dec ebx
movzx eax, byte [esi + edx - 2]
cmp eax, 0x3d
mov dword [esp + 8], edx
je 0x30fb3e4
cmp eax, 0x2e
jne 0x30fb3e5
dec ebx
mov dword [esp + 0x38], ebx
lea eax, [ebx + 1]
push eax
call fcn.030dc610
add esp, 4
mov dword [esp + 0xc], eax
cmp edi, esi
je 0x30fb370
xor esi, esi
mov edi, 2
jmp 0x30fb432
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov esi, ecx
cmp edi, ebx
mov edi, eax
jae 0x30fb370
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.030f0440
add esp, 4
mov byte [esp + 0x10], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.030f0440
add esp, 4
mov edx, eax
xor al, 0xc0
mov ecx, edx
or cl, 0x30
and cl, al
movzx eax, byte [esp + 0x10]
shl al, 2
shr cl, 4
add cl, al
mov eax, dword [esp + 0xc]
mov byte [eax + esi], cl
lea ecx, [esi + 1]
mov ebx, dword [esp + 8]
cmp edi, ebx
jae 0x30fb420
mov byte [esp + 4], dl
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edi]
push eax
mov esi, ecx
call fcn.030f0440
mov ecx, esi
mov ebx, dword [esp + 0xc]
add esp, 4
cmp al, 0x40
je 0x30fb420
mov ah, byte [esp + 4]
shl ah, 4
mov ecx, eax
xor cl, 0xc0
mov edx, eax
or dl, 0x3c
and dl, cl
shr dl, 2
add dl, ah
mov esi, dword [esp + 0x10]
lea ecx, [esi + 2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx + esi + 1], dl
mov ebx, dword [esp + 8]
lea ecx, [edi + 1]
cmp ecx, ebx
jae 0x30fb40e
mov ebx, eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.030f0440
add esp, 4
cmp al, 0x40
je 0x30fb40a
shl bl, 6
add al, bl
mov edx, dword [esp + 0x10]
mov ecx, edx
and ecx, 1
mov esi, dword [esp + 4]
xor esi, 1
lea esi, [esi + ecx*2]
mov ecx, dword [esp + 0xc]
mov byte [ecx + edx + 2], al
mov ecx, esi
mov ebx, dword [esp + 8]
jmp 0x30fb420
jmp dword [0x31210a4]
push ebx
mov esi, eax
call fcn.030dc620
mov eax, esi
add esp, 4
mov esi, eax
push eax
call fcn.030d4530
add esp, 4
mov edi, eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x31210ac]
mov ecx, esi
jmp 0x30fb629
mov dword [esp + 0x18], 0xfe8fcff
lea eax, [esp + 0x1c]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 6
ja 0x30fb5bb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
movzx eax, byte [esp + eax + 0x18]
push dword [esp + 0x20]
push eax
call fcn.030ff040
add esp, 8
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 7
jb 0x30fb590
lea eax, [esp + 0x18]
push eax
push edi
call fcn.030d4480
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x31210b4]
mov ecx, esi
mov esi, dword [esp + 0x30]
jmp 0x30fb603
movzx edx, byte [eax]
test dl, dl
mov ecx, esi
mov esi, dword [esp + 0x30]
je 0x30fb5fb
inc eax
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x30fb5f0
mov word [esi], 0x203a
add esi, 2
movzx eax, byte [esp + 0x5c]
test al, al
je 0x30fb61b
lea edx, [esp + 0x5d]
mov byte [esi], al
inc esi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x30fb610
mov byte [esi], 0xa
inc esi
mov dword [esp + 0x30], esi
mov al, 1
mov dword [esp + 0x3c], eax
push ecx
call fcn.030d47a0
add esp, 4
mov edi, dword [esp + 0x44]
add edi, 8
xor eax, eax
cmp edi, dword [esp + 0x40]
setne al
jmp dword [eax*4 + 0x3121064]
mov ebx, dword [esp + 0x3c]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x312106c]
jmp dword [0x31210bc]
xor ebx, ebx
test edi, edi
jne 0x30fb73f
jmp case.0x30faf8e.1
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x30]
mov byte [esi], 0
mov dword [esp + 0x5c], 0xe5eaeb43
mov dword [esp + 0x60], 0xe9d9dae7
mov dword [esp + 0x64], 0xe4e0e2e3
mov dword [esp + 0x68], 0xeee2c221
mov dword [esp + 0x6c], 0xdd3bf8d3
mov dword [esp + 0x70], 0xfff5f2f9
mov dword [esp + 0x74], 0xe9f631f9
mov word [esp + 0x78], 0x67f4
mov dword [esp + 0x7a], 0
sub esi, dword [esp + 0x34]
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0x21
ja 0x30fb70b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
movzx eax, byte [esp + eax + 0x5c]
push dword [esp + 0x18]
push eax
call fcn.030ff0b0
add esp, 8
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x5c], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x22
jb 0x30fb6e0
lea eax, [esp + 0x5c]
mov ecx, edi
push esi
push dword [esp + 0x38]
push eax
call fcn.030dd3a0
mov ebx, eax
jmp dword [0x31210bc]
push dword [esp + 0x34]
call fcn.030dc620
add esp, 4
and bl, 1
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
test edi, edi
je case.0x30faf8e.1
cmp edi, esi
je case.0x30faf8e.1
push edi
call fcn.030dc620
add esp, 4
lea ecx, [esp + 0x4c]
call fcn.03112390
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor edx, edx
test ecx, ecx
sete dl
xor eax, eax
jmp dword [edx*4 + 0x3121134]
lea ecx, [ebp - 0x3e]
jmp dword [eax*4 + 0x31210e4]
mov dword [ebp - 0x8c], 0x37d839dc
mov dword [ebp - 0x88], 0x33e935e9
mov dword [ebp - 0x84], 0xcf2131e9
mov dword [ebp - 0x80], 0xcb24cd20
mov dword [ebp - 0x7c], 0xc722c921
mov dword [ebp - 0x78], 0xc303c511
mov dword [ebp - 0x74], 0xdf06c11f
mov dword [ebp - 0x70], 0xdb08dd05
mov dword [ebp - 0x6c], 0xd732d905
mov dword [ebp - 0x68], 0xd301d53b
mov dword [ebp - 0x64], 0xef02d10a
mov dword [ebp - 0x60], 0xeb2bed07
mov dword [ebp - 0x5c], 0xe73be906
mov dword [ebp - 0x58], 0xe308e500
mov dword [ebp - 0x54], 0xff0ae101
mov dword [ebp - 0x50], 0xfb07fd76
mov dword [ebp - 0x4c], 0xf719f91c
mov dword [ebp - 0x48], 0xf30ff578
mov dword [ebp - 0x44], 0x8f7bf111
mov word [ebp - 0x40], 0x8d8c
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x53
ja 0x30fb8ac
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x8c]
push dword [ebp - 0x10]
push eax
call fcn.030ff550
add esp, 8
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x8c], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x54
jb 0x30fb880
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x8c]
push 0
push 0
push esi
push eax
push ecx
call fcn.03119310
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x31210ec]
mov dword [ebp - 0x94], ebx
lea ebx, [ebp - 0xbc]
lea eax, [ebp - 0x34]
push ebx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x2c]
call fcn.03119720
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x31210f4]
mov ecx, dword [ebp - 0xbc]
lea eax, [ecx*2 + 2]
inc ecx
jns 0x30fb917
mov eax, 0xffffffff
push eax
call fcn.030dc610
add esp, 4
mov esi, eax
mov dword [ebp - 0x8c], 0x9780b5b
mov dword [ebp - 0x88], 0x58a0785
mov dword [ebp - 0x84], 0x176037b
mov dword [ebp - 0x80], 0x1d4e1f74
mov dword [ebp - 0x7c], 0x19961b63
mov dword [ebp - 0x78], 0x15161760
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x1b
ja 0x30fb99c
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x8c]
push dword [ebp - 0x10]
push eax
call fcn.030ff5d0
add esp, 8
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x8c], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x1c
jb 0x30fb970
push ebx
push esi
push 0
lea eax, [ebp - 0x8c]
push eax
push dword [ebp - 0x2c]
call fcn.03119cf0
add esp, 0x14
shr eax, 0x1f
mov edi, esi
jmp dword [eax*4 + 0x31210fc]
xor edi, edi
jmp dword [0x3121104]
push esi
call fcn.030dc620
add esp, 4
mov eax, dword [case.0x30fb8c7.2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x8c], 0xb8bbba85
mov byte [ebp - 0x88], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 4
ja 0x30fba4c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x8c]
push dword [ebp - 0x10]
push eax
call fcn.03100440
add esp, 8
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x8c], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 5
jb 0x30fba20
mov eax, dword [0x3124fa4]
test eax, eax
je 0x30fbab0
mov ecx, dword [ebp - 0x8c]
xor edx, edx
mov ebx, dword [0x3124fa8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x625b6034
je 0x30fba9b
inc edx
cmp eax, edx
jne 0x30fba70
jmp 0x30fbab0
mov ecx, 4
xor edx, edx
cmp ecx, 4
setb dl
mov esi, 0x20119
xor eax, eax
jmp dword [edx*4 + 0x312112c]
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
jne case.default.0x30fbab7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x312111c]
lea eax, [ebp - 0x8c]
push eax
call fcn.031189b0
add esp, 4
cmp dword [ebp - 0x8c], 1
sete cl
and cl, al
movzx eax, cl
mov ebx, dword [ebp - 0x94]
jmp dword [eax*4 + 0x3121124]
xor eax, eax
xor edx, edx
cmp eax, 4
setb dl
mov esi, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x312112c]
mov ecx, 2
xor edx, edx
cmp ecx, 4
setb dl
mov esi, 0x20119
xor eax, eax
jmp dword [edx*4 + 0x312112c]
push esi
push 1
push dword [0x3124fac]
push eax
call fcn.03115510
add esp, 0x10
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x312111c]
mov ecx, 2
xor edx, edx
cmp ecx, 4
setb dl
mov esi, 0x20119
xor eax, eax
mov ebx, dword [ebp - 0x94]
jmp dword [edx*4 + 0x312112c]
xor eax, eax
test edi, edi
sete al
mov dword [ebp - 0x14], 0
jmp dword [eax*4 + 0x312113c]
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x30fbb80
sub eax, edi
cmp eax, 0xffffffd9
jge 0x30fbb99
mov eax, 0xffffffff
jmp 0x30fbb9c
add eax, 0x26
push eax
call fcn.030dc610
add esp, 4
mov esi, eax
mov dword [ebp - 0x8c], 0x3f993984
mov dword [ebp - 0x88], 0x23b03daf
mov dword [ebp - 0x84], 0x278f218a
mov dword [ebp - 0x80], 0x2b96258f
mov dword [ebp - 0x7c], 0x2fbd298f
mov dword [ebp - 0x78], 0x13b82dbe
mov dword [ebp - 0x74], 0x17bd11b9
mov dword [ebp - 0x70], 0x1b801546
mov dword [ebp - 0x6c], 0x1fb419bc
mov word [ebp - 0x68], 0x1d1c
mov dword [ebp - 0x66], 0
mov word [ebp - 0x62], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x2b
ja 0x30fbc4c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x8c]
push dword [ebp - 0x10]
push eax
call fcn.030ff660
add esp, 8
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x8c], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x2c
jb 0x30fbc20
movzx ecx, word [edi]
mov eax, esi
test cx, cx
je 0x30fbc71
lea edx, [edi + 2]
mov eax, esi
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x30fbc60
mov word [eax], 0
movzx ecx, word [ebp - 0x8c]
test cx, cx
je 0x30fbca1
lea edx, [ebp - 0x8a]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x30fbc90
mov word [eax], 0
mov dword [ebp - 0x30], esi
jmp dword [0x3121144]
push edi
call fcn.030dc620
add esp, 4
xor eax, eax
cmp word [esi], 0x5b
sete al
jmp dword [eax*4 + 0x312114c]
mov dword [ebp - 0x8c], 0x57904987
mov dword [ebp - 0x88], 0x53bd55b0
mov dword [ebp - 0x84], 0x5fac51a3
mov dword [ebp - 0x80], 0x5bb35db6
mov dword [ebp - 0x7c], 0x678259b3
mov dword [ebp - 0x78], 0x6391658b
mov dword [ebp - 0x74], 0x6f846192
mov dword [ebp - 0x70], 0x6b816d85
mov dword [ebp - 0x6c], 0x778c695a
mov dword [ebp - 0x68], 0x73987598
mov dword [ebp - 0x64], 0x7170
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x2b
ja 0x30fbd5c
nop
nop
nop
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x8c]
push dword [ebp - 0x10]
push eax
call fcn.030ff6e0
add esp, 8
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x8c], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x2c
jb 0x30fbd30
lea eax, [ebp - 0x8c]
push 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp dword [0x3121154]
xor eax, eax
cmp word [esi], 0x5b
sete al
jmp dword [eax*4 + 0x312114c]
jmp dword [0x3121154]
mov eax, dword [ebp - 0x14]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add eax, 8
mov dword [ebp - 0x20], 0
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor edx, edx
xor edi, edi
xor esi, esi
jmp dword [eax*4 + 0x312118c]
mov eax, dword [ecx]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x20]
mov edx, eax
sub edx, edi
cmp eax, esi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0xa0], edx
jne 0x30fbe61
mov dword [ebp - 0x14], esi
mov eax, esi
sub eax, edi
sar eax, 3
mov esi, eax
shr esi, 1
add esi, eax
mov eax, edx
sar eax, 3
inc eax
cmp esi, eax
ja 0x30fbdf9
mov esi, eax
lea eax, [esi*8]
push eax
call fcn.030dc610
add esp, 4
mov dword [ebp - 0x18], eax
test edi, edi
je 0x30fbe4e
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x14]
cmp edi, esi
mov edx, dword [ebp - 0x18]
je 0x30fbe42
xor eax, eax
nop
mov ecx, dword [edi + eax]
mov dword [edx + eax], ecx
mov ecx, dword [edi + eax + 4]
mov dword [edx + eax + 4], ecx
mov dword [edi + eax], 0
lea ecx, [edi + eax]
add ecx, 8
add eax, 8
cmp ecx, esi
jne 0x30fbe20
push edi
call fcn.030dc620
add esp, 4
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x18]
lea esi, [edi + esi*8]
mov eax, edi
mov edx, dword [ebp - 0xa0]
add eax, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], esi
mov dword [edi + edx], 0
mov dword [ebp - 0x18], edi
mov dword [edi + edx + 4], 0
xor eax, eax
mov esi, dword [ebp - 0x38]
nop
nop
nop
nop
nop
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jne 0x30fbe80
push eax
mov edi, eax
mov dword [ebp - 0x24], eax
call fcn.030dc610
add esp, 4
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xa0]
mov dword [ecx + edx], eax
mov ecx, edi
shr ecx, 2
mov edx, esi
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, dword [ebp - 0x24]
mov edx, ecx
not edx
or edx, 0xfffffffc
add eax, edx
mov dword [ebp - 0x9c], eax
lea edi, [ecx + eax]
inc edi
add edx, esi
lea esi, [ecx + edx]
inc esi
mov eax, ecx
shr ecx, 1
and ecx, 1
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, eax
inc cl
test cl, 1
jne 0x30fbf0b
mov esi, dword [ebp - 0x24]
add edx, esi
mov ecx, esi
and ecx, 2
mov eax, dword [ebp - 0x9c]
add eax, esi
movzx edx, byte [ecx + edx + 1]
mov byte [ecx + eax + 1], dl
xor ecx, ecx
cmp esi, 1
je 0x30fbfc2
mov ecx, 0xffffffff
mov eax, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ebp - 0x38]
movzx edi, byte [edx + eax - 1]
xor edi, ecx
mov ecx, edi
shr ecx, 1
mov edx, edi
and edx, 1
neg edx
and edx, 0xedb88320
xor edx, ecx
mov esi, edx
shr esi, 1
mov ecx, edi
shl ecx, 0x1e
sar ecx, 0x1f
and ecx, 0xedb88320
xor ecx, esi
mov ebx, edi
shl ebx, 0x1d
sar ebx, 0x1f
and ebx, 0x76dc419
mov esi, edi
shl esi, 0x1c
sar esi, 0x1f
and esi, 0xedb8832
xor esi, ebx
mov ebx, edi
shl ebx, 0x1b
sar ebx, 0x1f
and ebx, 0x1db71064
shl edi, 0x1a
sar edi, 0x1f
and edi, 0x3b6e20c8
xor edi, ebx
xor edi, esi
mov esi, ecx
shr esi, 6
xor edi, esi
shl edx, 0x1a
sar edx, 0x1f
and edx, 0x76dc4190
xor edx, edi
shl ecx, 0x1a
sar ecx, 0x1f
and ecx, 0xedb88320
xor ecx, edx
inc eax
cmp dword [ebp - 0x24], eax
jne 0x30fbf20
not ecx
mov ebx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0xa0]
mov dword [eax + edx + 4], ecx
add dword [ebp - 0x20], 8
mov ecx, dword [ebp - 0x28]
add ecx, 4
mov eax, dword [case.0x30fc11d.7]
mov esi, dword [ebp - 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov edx, dword [ebp - 0x18]
mov edi, edx
jmp dword [eax*4 + 0x312118c]
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x90]
mov byte [eax + esi], 0
push 0x20
call fcn.030dc610
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [ebp - 0x98], eax
mov ecx, eax
push esi
push dword [ebp - 0x90]
call fcn.030ff120
movzx eax, al
mov dword [ebp - 0x20], 0
xor edx, edx
jmp dword [eax*4 + 0x312117c]
mov dword [ebp - 0x8c], 0x85788e69
mov dword [ebp - 0x88], 0x72807099
mov dword [ebp - 0x84], 0x95756145
mov dword [ebp - 0x80], 0x785b6c9e
mov dword [ebp - 0x7c], 0x9e6d6898
mov dword [ebp - 0x78], 0x60674051
mov dword [ebp - 0x74], 0xad989095
mov word [ebp - 0x70], 0x3bad
mov dword [ebp - 0x6e], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x21
ja 0x30fc0fc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x8c]
push dword [ebp - 0x10]
push eax
call fcn.031001f0
add esp, 8
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x8c], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x22
jb 0x30fc0d0
lea eax, [ebp - 0x8c]
mov ecx, dword [ebp - 0x98]
push eax
call fcn.030ff330
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
mov dword [ebp - 0x94], ebx
jmp dword [ecx*4 + 0x3121184]
mov dword [ebp - 0x18], edx
mov edi, dword [ebp - 0x20]
jmp dword [0x31211a4]
mov esi, dword [ebp - 0x98]
mov ecx, esi
call fcn.030ff4b0
push esi
call fcn.030dc620
add esp, 4
mov dword [ebp - 0x20], edi
mov eax, dword [case.0x30fc11d.12]
nop
nop
jmp eax
mov edi, dword [ebp - 0x90]
jmp dword [0x31211bc]
jmp dword [0x31211c4]
push edi
call fcn.030dc620
add esp, 4
nop
nop
nop
push edi
call fcn.030dc620
add esp, 4
jmp dword [0x31211cc]
jmp dword [0x31211e0]
mov dword [ebp - 0x14], ebx
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x31212b4]
jmp dword [0x31212bc]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
jmp dword [0x31212c4]
xor ebx, ebx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
mov edi, dword [ebp - 0x20]
jmp dword [0x31212ac]
add ebx, 4
mov ebx, dword [ebx]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x312123c]
mov edi, dword [ebx]
cmp dword [ebx + 0x18], 3
mov edx, 0
jne case.default.0x30fc1ec
mov edx, dword [ebx + 0x10]
test edi, edi
setne al
test edx, edx
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x3121244]
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x30], esi
mov eax, edx
mov esi, edx
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x30fc232
sub ecx, esi
inc ecx
shr ecx, 1
mov dword [ebp - 0xb8], ecx
lea eax, [ecx + 1]
push eax
call fcn.030dc610
add esp, 4
movsx ecx, byte [esi]
xor edx, edx
test ecx, ecx
setne dl
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x1c], eax
jmp dword [edx*4 + 0x312124c]
mov edx, dword [ebp - 0x1c]
mov byte [edx], cl
inc edx
mov dword [ebp - 0x1c], edx
movsx ecx, byte [eax]
xor ebx, ebx
test ecx, ecx
setne bl
mov esi, eax
jmp dword [ebx*4 + 0x312124c]
mov dword [ebp - 0x24], esi
lea eax, [esi + 1]
mov esi, ecx
not esi
and esi, 0xffffffdf
lea ebx, [esi + 0x67]
cmp ebx, 5
ja case.default.0x30fc285
mov ecx, 0xffffffa8
sub ecx, esi
movsx ebx, byte [eax]
xor edx, edx
test ebx, ebx
setne dl
mov esi, dword [ebp - 0x24]
jmp dword [edx*4 + 0x3121254]
lea edx, [ecx - 0x30]
cmp edx, 0xa
jb 0x30fc2a0
mov ecx, 0xffffffff
jmp 0x30fc2ac
mov edx, ecx
xor edx, 0x30
and ecx, 0xffffffcf
add ecx, ecx
sub ecx, edx
mov esi, dword [ebp - 0x24]
movsx ebx, byte [eax]
xor edx, edx
test ebx, ebx
setne dl
jmp dword [edx*4 + 0x3121254]
shl ecx, 4
add esi, 2
mov eax, esi
mov esi, ebx
not esi
and esi, 0xffffffdf
lea edx, [esi + 0x67]
cmp edx, 5
ja case.default.0x30fc2ff
mov edx, 0xffffffa8
sub edx, esi
mov esi, edx
not esi
and esi, ecx
xor edx, ecx
add edx, ecx
sub edx, esi
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov byte [eax], dl
inc eax
mov dword [ebp - 0x1c], eax
movsx ecx, byte [esi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x312124c]
mov esi, eax
lea edx, [ebx - 0x30]
cmp edx, 0xa
jb 0x30fc321
mov ebx, 0xffffffff
jmp 0x30fc32d
mov edx, ebx
xor edx, 0x30
and ebx, 0xffffffcf
add ebx, ebx
sub ebx, edx
mov edx, ebx
not edx
and edx, ecx
xor ebx, ecx
add ebx, ecx
sub ebx, edx
mov eax, dword [ebp - 0x1c]
mov byte [eax], bl
inc eax
mov dword [ebp - 0x1c], eax
movsx ecx, byte [esi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x312124c]
mov eax, dword [ebp - 0x1c]
mov byte [eax], 0
jmp 0x30fc361
inc edi
movzx ecx, byte [edi]
movzx eax, cl
lea edx, [eax - 9]
cmp edx, 5
jb 0x30fc360
cmp eax, 0x20
je 0x30fc360
mov edx, ecx
add dl, 0xd5
xor eax, eax
test dl, 0xfd
sete al
lea edx, [edi + eax]
cmp byte [edi + eax], 0x30
jne 0x30fc39f
movzx edx, byte [edi + eax + 1]
and dl, 0xdf
xor ebx, ebx
cmp dl, 0x58
sete bl
lea edx, [eax + ebx*2]
add edx, edi
mov dword [ebp - 0x1c], edx
xor esi, esi
xor eax, eax
xor edx, edx
jmp 0x30fc3b2
mov esi, ebx
mov ebx, edx
mov edx, eax
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x1c]
movsx eax, byte [esi]
lea edi, [eax - 0x30]
cmp edi, 0xa
jb 0x30fc3ee
mov dword [ebp - 0x38], edx
mov edx, eax
and edx, 0xffffffdf
add edx, 0xffffffbf
cmp edx, 0x19
ja 0x30fc46c
or al, 0x20
cmp al, 0x66
jg 0x30fc46c
movsx edi, al
add edi, 0xffffffa9
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x38], edi
inc esi
mov dword [ebp - 0x1c], esi
mov esi, edx
and esi, ebx
mov eax, 0xffffffff
mov edi, edx
mov edx, 0xffffffff
cmp esi, 0xffffffff
mov esi, 0x22
je 0x30fc3b2
mov edx, ebx
shld ebx, edi, 4
shr edx, 0x1c
shl edi, 4
xor eax, eax
mov dword [ebp - 0xa0], edx
neg edx
sbb eax, eax
or ebx, eax
or eax, edi
mov edx, dword [ebp - 0x38]
mov esi, edx
sar esi, 0x1f
add eax, edx
adc esi, ebx
mov edx, 0xffffffff
mov edi, 0xffffffff
jb 0x30fc447
mov edx, esi
mov edi, eax
mov ebx, 0x22
mov esi, 0x22
jb 0x30fc456
mov esi, dword [ebp - 0x24]
mov eax, edi
cmp dword [ebp - 0xa0], 0
jne 0x30fc3b0
mov ebx, esi
jmp 0x30fc3b0
xor edi, edi
mov esi, dword [ebp - 0x38]
mov eax, esi
neg eax
mov dword [ebp - 0x1c], eax
mov edx, 0
sbb edx, ebx
cmp cl, 0x2d
je case.default.0x30fc494
mov dword [ebp - 0x1c], esi
mov edx, ebx
xor ecx, ecx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
setne cl
jmp dword [ecx*4 + 0x312125c]
mov edi, dword [eax]
xor ecx, ecx
jmp dword [ecx*4 + 0x312127c]
add eax, 8
xor ecx, ecx
cmp eax, dword [ebp - 0x20]
setne cl
jmp dword [ecx*4 + 0x312125c]
cmp dword [ebp - 0x24], 0x22
setne cl
mov esi, dword [eax + 4]
mov ebx, esi
shr ebx, 0x1c
xor ebx, edx
shl esi, 4
or esi, 1
xor esi, dword [ebp - 0x1c]
or esi, ebx
sete ch
and ch, cl
movzx ecx, ch
jmp dword [ecx*4 + 0x3121274]
mov ecx, 1
jmp dword [ecx*4 + 0x312127c]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x3121284]
mov esi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x9c]
jmp dword [0x3121294]
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xb8]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x98]
mov dword [eax + 4], ecx
mov eax, 0xffffffff
mov ebx, dword [ebp - 0x9c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x30fc599
mov ecx, dword [ebp - 0xac]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov esi, dword [ebp - 0xa4]
mov dword [esi], 0
mov dword [esi + 4], 0
push 0x6c625980
push dword [0x3124fb0]
call fcn.03118120
add esp, 8
push esi
push 1
push 0
push 0
push dword [ebp - 0xac]
push 0
push dword [ebp - 0xb0]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x312128c]
mov esi, dword [ebp - 0x30]
jmp dword [0x3121294]
movzx eax, byte [edi]
test al, al
mov edx, dword [ebp - 0x30]
je 0x30fc5cd
inc edi
mov ecx, dword [ebp - 0xa4]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x30fc5c0
jmp 0x30fc5d3
mov ecx, dword [ebp - 0xa4]
mov word [edx], 0x203a
mov eax, edx
add eax, 2
mov edi, dword [ecx]
test edi, edi
je 0x30fc60b
mov ecx, dword [ecx + 4]
mov edx, edi
and edx, 3
je 0x30fc60f
xor esi, esi
nop
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + esi], bl
inc esi
cmp edx, esi
jne 0x30fc5f0
add eax, esi
mov edx, edi
sub edx, esi
mov esi, eax
jmp 0x30fc611
mov esi, eax
jmp 0x30fc659
mov edx, edi
cmp edi, 4
jb 0x30fc659
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 1], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 2], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
lea esi, [eax + 4]
mov byte [eax + 3], bl
mov eax, esi
add edx, 0xfffffffc
jne 0x30fc620
mov byte [esi], 0xa
inc esi
push 0xe050b307
push dword [0x3124f98]
call fcn.03118120
add esp, 8
mov ecx, dword [ebp - 0xa4]
push dword [ecx + 4]
call eax
mov al, 1
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x9c]
jmp dword [0x3121294]
push dword [ebp - 0x98]
call fcn.030dc620
add esp, 4
add ebx, 4
mov ebx, dword [ebx]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x312123c]
push dword [ebp - 0x28]
call fcn.030dc620
add esp, 4
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
jmp dword [0x31212c4]
jmp dword [0x31212d0]
jmp dword [0x31212d0]
and al, 1
mov dword [ebp - 0x14], eax
jmp dword [0x31212d8]
test ebx, ebx
je 0x30fc715
cmp ebx, edi
je 0x30fc715
mov esi, ebx
jmp 0x30fc6f7
add esi, 8
cmp esi, edi
je 0x30fc708
mov eax, dword [esi]
test eax, eax
je 0x30fc6f0
push eax
call fcn.030dc620
add esp, 4
jmp 0x30fc6f0
push ebx
call fcn.030dc620
add esp, 4
xor edi, edi
xor ebx, ebx
jmp dword [0x31212dc]
test ebx, ebx
je case.0x30fc494.31
cmp ebx, edi
je case.0x30fc494.31
mov esi, ebx
jmp 0x30fc737
add esi, 8
cmp esi, edi
je 0x30fc708
mov eax, dword [esi]
test eax, eax
je 0x30fc730
push eax
call fcn.030dc620
add esp, 4
jmp 0x30fc730
jmp dword [0x3121218]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x3121164]
xor edi, edi
xor esi, esi
jmp dword [0x31211f4]
push dword [ebp - 0x30]
call fcn.030dc620
add esp, 4
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x31211fc]
mov dword [ebp - 0x14], 0
mov ebx, esi
jmp dword [0x31212d8]
lea eax, [ebp - 0x34]
push 0
push eax
push dword [ebp - 0x2c]
call fcn.03118f20
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x18], 0
jmp dword [eax*4 + 0x312116c]
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x8c], 0xb8bbba85
mov byte [ebp - 0x88], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 4
ja 0x30fc80c
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x8c]
push dword [ebp - 0x10]
push eax
call fcn.03100440
add esp, 8
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x8c], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 5
jb 0x30fc7e0
mov eax, dword [0x3124fa4]
test eax, eax
je 0x30fc885
mov ecx, dword [ebp - 0x8c]
xor edx, edx
mov esi, dword [0x3124fa8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x625b6034
je 0x30fc879
inc edx
cmp eax, edx
jne 0x30fc830
jmp 0x30fc885
mov esi, dword [ebp - 0x34]
lea eax, [esi + 1]
push eax
call fcn.030dc610
add esp, 4
push 0
push esi
mov dword [ebp - 0x90], eax
push eax
push dword [ebp - 0x2c]
call fcn.03119000
add esp, 0x10
not eax
shr eax, 0x1f
xor edi, edi
mov dword [ebp - 0x18], 0
jmp dword [eax*4 + 0x3121174]
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
jne 0x30fcaee
mov esi, dword [ebp - 0x18]
jmp dword [0x31211f4]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x31211fc]
mov dword [ebp - 0x94], ebx
mov eax, edi
mov dword [ebp - 0x18], esi
sub eax, esi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.030dc610
add esp, 4
mov dword [ebp - 0x28], eax
mov ebx, dword [0x3124fa0]
mov dword [ebp - 0x8c], 0x8fd289ed
mov dword [ebp - 0x88], 0x83258d3f
mov dword [ebp - 0x84], 0x873a8121
mov dword [ebp - 0x80], 0x9b2a85c5
mov dword [ebp - 0x7c], 0x9fda9928
mov dword [ebp - 0x78], 0x93269d3d
mov dword [ebp - 0x74], 0x97f39131
mov dword [ebp - 0x70], 0xebbd9538
mov dword [ebp - 0x6c], 0xef4be95c
mov dword [ebp - 0x68], 0xe35fed4d
mov dword [ebp - 0x64], 0xe75ae14c
mov dword [ebp - 0x60], 0xfb5de557
mov dword [ebp - 0x5c], 0xff42f959
mov dword [ebp - 0x58], 0xf378fd8e
mov dword [ebp - 0x54], 0xf74cf154
mov word [ebp - 0x50], 0xf5f4
mov dword [ebp - 0x4e], 0
mov word [ebp - 0x4a], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x43
ja 0x30fc98c
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x8c]
push dword [ebp - 0x10]
push eax
call fcn.03100280
add esp, 8
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x8c], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x44
jb 0x30fc960
mov dword [ebp - 0x20], edi
lea ecx, [ebp - 0x8c]
lea eax, [ebp - 0x2c]
push eax
push 0
push 0
push 0x1e
push ecx
push 0
call ebx
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
jns 0x30fc9b2
mov eax, 0xffffffff
jmp 0x30fc9b5
lea eax, [ebx + ebx]
push eax
call fcn.030dc610
add esp, 4
mov edi, dword [0x3124fa0]
mov esi, eax
mov dword [ebp - 0x8c], 0x1366113d
mov dword [ebp - 0x88], 0x1f7d1d8b
mov dword [ebp - 0x84], 0x1b8e1979
mov dword [ebp - 0x80], 0x7960545
mov dword [ebp - 0x7c], 0x34e0190
mov dword [ebp - 0x78], 0xf920d6d
mov dword [ebp - 0x74], 0xb270969
mov dword [ebp - 0x70], 0x37453550
mov dword [ebp - 0x6c], 0x335f31ac
mov dword [ebp - 0x68], 0x3fab3d5d
mov dword [ebp - 0x64], 0x3bae395c
mov dword [ebp - 0x60], 0x274525b3
mov dword [ebp - 0x5c], 0x23b62141
mov dword [ebp - 0x58], 0x2fb02d7a
mov dword [ebp - 0x54], 0x2b442944
mov word [ebp - 0x50], 0x5554
mov dword [ebp - 0x4e], 0
mov word [ebp - 0x4a], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x43
ja 0x30fca8c
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x8c]
push dword [ebp - 0x10]
push eax
call fcn.031002f0
add esp, 8
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x8c], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x44
jb 0x30fca60
lea eax, [ebp - 0x2c]
push eax
push ebx
push esi
push 0x1e
lea eax, [ebp - 0x8c]
push eax
push 0
call edi
lea eax, [ebp - 0x34]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.03118bc0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x3121204]
mov dword [ebp - 0x90], esi
lea eax, [ebp - 0x10]
push 0
push eax
push dword [ebp - 0x34]
call fcn.03118f20
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [ebp - 0x14], 0
mov esi, dword [ebp - 0x28]
jmp dword [eax*4 + 0x312120c]
push dword [ebp - 0x24]
push 1
push dword [0x3124fac]
push eax
call fcn.03115510
add esp, 0x10
mov esi, dword [ebp - 0x18]
jmp dword [0x31211f4]
lea eax, [ebp - 0x2c]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.03118bc0
add esp, 0x14
lea eax, [ebp - 0x2c]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.03118bc0
add esp, 0x14
jmp dword [0x3121160]
mov esi, dword [ebp - 0x10]
mov byte [edi + esi], 0
push 0x20
call fcn.030dc610
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [ebp - 0xa8], eax
mov ecx, eax
push esi
mov dword [ebp - 0xb4], edi
push edi
call fcn.030ff120
movzx eax, al
mov dword [ebp - 0x14], 0
mov esi, dword [ebp - 0x28]
jmp dword [eax*4 + 0x312122c]
mov esi, dword [ebp - 0x1c]
mov dword [esi], 0x1d001a31
mov dword [esi + 4], 0x6180811
mov dword [esi + 8], 0x1d15295d
mov dword [esi + 0xc], 0x20471c0a
mov dword [esi + 0x10], 0xa1d1000
mov dword [esi + 0x14], 0xf0f3a49
mov dword [esi + 0x18], 0xf5e7e80e
mov dword [esi + 0x1c], 0xede3e0c5
mov dword [esi + 0x20], 0x8bef
mov byte [esi + 0x24], 0
mov dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0x8c]
cmp eax, 0x24
ja 0x30fcc33
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x8c]
movzx eax, byte [esi + eax]
push dword [ebp - 0x8c]
push eax
call fcn.03100360
add esp, 8
mov ecx, dword [ebp - 0x8c]
mov byte [esi + ecx], al
inc dword [ebp - 0x8c]
mov eax, dword [ebp - 0x8c]
cmp eax, 0x25
jb 0x30fcc00
mov ecx, dword [ebp - 0xa8]
push esi
call fcn.030ff330
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x14], 0
mov esi, dword [ebp - 0x28]
jmp dword [ecx*4 + 0x3121234]
mov edi, dword [ebp - 0xb4]
jmp dword [0x312129c]
mov ebx, dword [ebp - 0xa8]
mov ecx, ebx
call fcn.030ff4b0
push ebx
call fcn.030dc620
add esp, 4
jmp dword [0x31212a4]
add eax, 8
mov dword [ebp - 0x14], 0
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
setne al
mov esi, dword [ebp - 0x28]
jmp dword [eax*4 + 0x312123c]
push esi
call fcn.030dc620
add esp, 4
mov dword [ebp - 0x14], ebx
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x31212b4]
mov esi, edi
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0
mov eax, ecx
not eax
mov edi, dword [ebp - 0x28]
and eax, edi
not edi
and edi, ecx
mov ebx, dword [ebp - 0x94]
mov dword [ebx], 0x353637c7
mov dword [ebx + 4], 0x31212e2b
mov dword [ebx + 8], 0x34383e27
mov dword [ebx + 0xc], 0x3a36d6f9
mov dword [ebx + 0x10], 0xcde72037
mov dword [ebx + 0x14], 0x2b3d2621
mov dword [ebx + 0x18], 0x2122e921
mov dword [ebx + 0x1c], 0x9b24
mov byte [ebx + 0x20], 0
sub edi, eax
mov dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0x8c]
cmp eax, 0x20
ja 0x30fcd63
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x8c]
movzx eax, byte [ebx + eax]
push dword [ebp - 0x8c]
push eax
call fcn.031003d0
add esp, 8
mov ecx, dword [ebp - 0x8c]
mov byte [ebx + ecx], al
inc dword [ebp - 0x8c]
mov eax, dword [ebp - 0x8c]
cmp eax, 0x21
jb 0x30fcd30
mov ecx, dword [ebp + 8]
push edi
push dword [ebp - 0x28]
push ebx
call fcn.030dd3a0
mov dword [ebp - 0x14], eax
mov edi, esi
jmp dword [0x31212bc]
not eax
shr eax, 0x1f
mov dword [ebp - 0x14], 0
mov esi, dword [ebp - 0x28]
jmp dword [eax*4 + 0x3121224]
jmp dword [0x31212a4]
push edi
call fcn.030dc620
add esp, 4
mov dword [ebp - 0x30], esi
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x8c], 0xb8bbba85
mov byte [ebp - 0x88], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 4
ja 0x30fcdfc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x8c]
push dword [ebp - 0x10]
push eax
call fcn.03100440
add esp, 8
mov ecx, dword [ebp - 0x10]
mov byte [ebp + ecx - 0x8c], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 5
jb 0x30fcdd0
mov eax, dword [0x3124fa4]
test eax, eax
je 0x30fce38
mov ecx, dword [ebp - 0x8c]
xor edx, edx
mov esi, dword [0x3124fa8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x625b6034
je 0x30fce30
inc edx
cmp eax, edx
jne 0x30fce20
jmp 0x30fce38
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
jne 0x30fce4a
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x14]
jmp dword [0x31212ac]
push edi
push 1
push dword [0x3124fac]
push eax
call fcn.03115510
add esp, 0x10
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x14]
jmp dword [0x31212ac]
mov esi, dword [ebp - 0x10]
lea eax, [esi + 1]
push eax
call fcn.030dc610
add esp, 4
push 0
push esi
push eax
push dword [ebp - 0x34]
call fcn.03119000
add esp, 0x10
mov esi, dword [ebp - 0x10]
lea eax, [esi + 1]
push eax
call fcn.030dc610
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [ebp - 0x34]
call fcn.03119000
add esp, 0x10
jmp dword [0x3121220]
int3
push ebx
call fcn.030dc620
add esp, 4
mov ecx, dword [esp + 0xa4]
add ecx, 4
mov eax, dword [case.0x30fc494.37]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, 0xc
setne al
jmp dword [eax*4 + 0x31212f4]
mov edi, dword [esp + ecx + 0xc0]
mov ebp, 0xfffffffe
nop
nop
nop
nop
cmp word [edi + ebp + 2], 0
lea ebp, [ebp + 2]
jne 0x30fd270
jmp dword [0x3121320]
mov dword [esp + 0xa4], ecx
mov edx, ebp
sar edx, 1
mov eax, dword [esp + 0x64]
lea ecx, [edx + eax]
mov dword [esp + 0x5c], edx
add edx, eax
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x30fd2ac
mov eax, 0xffffffff
push eax
call fcn.030dc610
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x54]
movzx eax, word [eax]
mov esi, ebx
test ax, ax
je 0x30fd2e1
mov ecx, dword [esp + 0x98]
mov esi, ebx
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x30fd2d0
mov word [esi], 0x5c
mov dword [esp + 0x14], 0x134611b4
mov dword [esp + 0x18], 0x6fcd6ddb
mov dword [esp + 0x1c], 0x6bde69c9
mov dword [esp + 0x20], 0x67356504
mov dword [esp + 0x24], 0x63c361ec
mov dword [esp + 0x28], 0x7fc37df0
mov word [esp + 0x2c], 0x7978
mov dword [esp + 0x2e], 0
add esi, 2
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1d
ja 0x30fd366
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.03100900
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1e
jb 0x30fd340
movzx eax, word [edi]
test ax, ax
je 0x30fd391
lea ecx, [edi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x30fd380
mov word [esi], 0
movzx eax, word [esp + 0x14]
test ax, ax
je 0x30fd3c1
lea ecx, [esp + 0x16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x30fd3b0
mov word [esi], 0
lea eax, [esp + 0x58]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xb0], ebx
push ebx
call fcn.03118bc0
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 8], 0
jmp dword [eax*4 + 0x3121324]
movzx esi, byte [esp + 8]
jmp dword [0x31213e4]
push dword [esp + 0xa0]
call fcn.030dc620
add esp, 4
jmp dword [esi*4 + 0x31213ec]
jmp dword [0x312132c]
jmp dword [esi*4 + 0x31213ec]
jmp dword [0x31213f8]
mov esi, eax
mov dword [esp + 0x14], 0xc3a6c1ef
mov dword [esp + 0x18], 0xc7e8c554
mov dword [esp + 0x1c], 0xcb52c95c
mov dword [esp + 0x20], 0xcfcecd58
mov word [esp + 0x24], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x11
ja 0x30fd49b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
movzx eax, byte [esp + eax + 0x14]
push dword [esp + 0xc]
push eax
call fcn.03100a10
add esp, 8
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x14], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x12
jb 0x30fd470
movzx ecx, word [edi]
mov eax, esi
test cx, cx
je 0x30fd4c1
lea edx, [edi + 2]
mov eax, esi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x30fd4b0
mov word [eax], 0
movzx ecx, word [esp + 0x14]
test cx, cx
je 0x30fd4f1
lea edx, [esp + 0x16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x30fd4e0
mov word [eax], 0
mov ecx, dword [esp + 0xf0]
push dword [esp + 0x68]
push dword [esp + 0x70]
push esi
call fcn.030dd1f0
mov dword [esp + 8], eax
jmp dword [0x312137c]
push esi
call fcn.030dc620
add esp, 4
push 0xe050b307
push dword [0x3124f98]
call fcn.03118120
add esp, 8
push dword [esp + 0x6c]
call eax
jmp dword [0x3121384]
push dword [esp + 0x48]
call fcn.030dc620
add esp, 4
push dword [esp + 0x90]
call fcn.030d47a0
add esp, 4
jmp 0x30fdb47
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
add eax, ecx
inc eax
mov ecx, eax
and ecx, 0x16
xor eax, 0x16
lea ecx, [eax + ecx*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x30fd57f
mov eax, 0xffffffff
push eax
call fcn.030dc610
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x54]
movzx eax, word [eax]
mov esi, ebx
test ax, ax
je 0x30fd5c1
mov ecx, dword [esp + 0x98]
mov esi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x30fd5b0
mov word [esi], 0x5c
mov dword [esp + 0x14], 0xc97ecb68
mov dword [esp + 0x18], 0xc55bc759
mov dword [esp + 0x1c], 0xc156c35b
mov dword [esp + 0x20], 0xbd13bf20
mov dword [esp + 0x24], 0xb92bbb30
mov dword [esp + 0x28], 0xb529b736
mov dword [esp + 0x2c], 0xb129b32d
mov dword [esp + 0x30], 0xad3aaf14
mov dword [esp + 0x34], 0xa920ab37
mov dword [esp + 0x38], 0xa532a733
mov dword [esp + 0x3c], 0xa13ca338
mov word [esp + 0x40], 0x9fa0
lea eax, [esp + 0x14]
mov byte [eax + 0x32], 0
mov dword [eax + 0x2e], 0
add esi, 2
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x32
ja 0x30fd676
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.03100a80
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x33
jb 0x30fd650
movzx eax, word [edi]
test ax, ax
je 0x30fd6a1
lea ecx, [edi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x30fd690
mov word [esi], 0
movzx eax, word [esp + 0x14]
test ax, ax
je 0x30fd6d1
lea ecx, [esp + 0x16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x30fd6c0
mov word [esi], 0
lea eax, [ebp + 0x12]
cmp dword [esp + 0x5c], 0xfffffff7
jge 0x30fd6e5
mov eax, 0xffffffff
push eax
call fcn.030dc610
add esp, 4
mov esi, eax
mov dword [esp + 0x14], 0xcf52c99b
mov dword [esp + 0x18], 0xc348cda9
mov dword [esp + 0x1c], 0xc75ac1a5
mov dword [esp + 0x20], 0xfb9cc5a0
mov word [esp + 0x24], 0xf9f8
lea eax, [esp + 0x14]
mov byte [eax + 0x14], 0
mov word [eax + 0x12], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x14
ja 0x30fd766
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.03100b00
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x15
jb 0x30fd740
movzx ecx, word [edi]
mov eax, esi
test cx, cx
je 0x30fd791
lea edx, [edi + 2]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x30fd780
mov word [eax], 0
movzx ecx, word [esp + 0x14]
test cx, cx
je 0x30fd7c1
lea edx, [esp + 0x16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x30fd7b0
mov word [eax], 0
mov dword [esp + 0x14], 0xc1c6c7ee
mov word [esp + 0x18], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x30fd816
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.03100b80
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x30fd7f0
push 0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x24]
push eax
push ebx
push esi
push dword [esp + 0x10c]
call fcn.030f4450
add esp, 0x20
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x5c]
lea ecx, [edx + eax]
add edx, eax
add edx, 0x17
lea eax, [ecx*2 + 0x2e]
test edx, edx
jns 0x30fd857
mov eax, 0xffffffff
push eax
call fcn.030dc610
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x54]
movzx eax, word [eax]
mov esi, ebx
test ax, ax
je 0x30fd891
mov ecx, dword [esp + 0x98]
mov esi, ebx
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x30fd880
mov word [esi], 0x5c
mov dword [esp + 0x14], 0xc97ecb68
mov dword [esp + 0x18], 0xc55bc759
mov dword [esp + 0x1c], 0xc156c35b
mov dword [esp + 0x20], 0xbd13bf20
mov dword [esp + 0x24], 0xb92bbb30
mov dword [esp + 0x28], 0xb529b736
mov dword [esp + 0x2c], 0xb129b32d
mov dword [esp + 0x30], 0xad3aaf14
mov dword [esp + 0x34], 0xa920ab37
mov dword [esp + 0x38], 0xa532a733
mov dword [esp + 0x3c], 0xa13ca338
mov word [esp + 0x40], 0x9fa0
lea eax, [esp + 0x14]
mov byte [eax + 0x32], 0
mov dword [eax + 0x2e], 0
add esi, 2
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x32
ja 0x30fd946
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.03100a80
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x33
jb 0x30fd920
movzx eax, word [edi]
test ax, ax
je 0x30fd971
lea ecx, [edi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x30fd960
mov word [esi], 0
movzx eax, word [esp + 0x14]
test ax, ax
je 0x30fd9a1
lea ecx, [esp + 0x16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x30fd990
mov word [esi], 0
lea eax, [ebp + 0x12]
cmp dword [esp + 0x5c], 0xfffffff7
jge 0x30fd9b5
mov eax, 0xffffffff
push eax
call fcn.030dc610
add esp, 4
mov esi, eax
mov dword [esp + 0x14], 0xcf52c99b
mov dword [esp + 0x18], 0xc348cda9
mov dword [esp + 0x1c], 0xc75ac1a5
mov dword [esp + 0x20], 0xfb9cc5a0
mov word [esp + 0x24], 0xf9f8
lea eax, [esp + 0x14]
mov byte [eax + 0x14], 0
mov word [eax + 0x12], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x14
ja 0x30fda36
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.03100b00
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x15
jb 0x30fda10
movzx ecx, word [edi]
mov eax, esi
test cx, cx
je 0x30fda61
lea edx, [edi + 2]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x30fda50
mov word [eax], 0
movzx ecx, word [esp + 0x14]
test cx, cx
je 0x30fda91
lea edx, [esp + 0x16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x30fda80
mov word [eax], 0
mov dword [esp + 0x14], 0xc1c6c7ee
mov word [esp + 0x18], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x30fdae6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.03100b80
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x30fdac0
push 0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x24]
push eax
push ebx
push esi
push dword [esp + 0x10c]
call fcn.030f4450
add esp, 0x20
jmp dword [0x31213fc]
mov ecx, dword [esp + 0x94]
and cl, 1
or cl, al
mov dword [esp + 0x94], ecx
jmp dword [0x3121404]
push esi
call fcn.030dc620
add esp, 4
jmp dword [0x312140c]
jmp dword [0x312140c]
jmp dword [0x31213ac]
jmp dword [0x31213b8]
mov eax, dword [case.0x30fbb35.142]
nop
nop
nop
nop
jmp eax
mov esi, dword [esp + 0x60]
lea eax, [esi + 1]
push eax
call fcn.030dc610
add esp, 4
push 0
push esi
push eax
push dword [esp + 0x64]
call fcn.03119000
add esp, 0x10
mov esi, dword [esp + 0x60]
lea eax, [esi + 1]
push eax
call fcn.030dc610
add esp, 4
mov ebx, eax
push 0
push esi
push eax
push dword [esp + 0x64]
call fcn.03119000
add esp, 0x10
jmp dword [0x3121350]
not eax
shr eax, 0x1f
mov dword [esp + 8], 0
jmp dword [eax*4 + 0x3121354]
mov eax, dword [esp + 0x60]
mov byte [ebx + eax], 0
push ebx
call fcn.030d3bb0
add esp, 4
xor ecx, ecx
mov dword [esp + 0x90], eax
test eax, eax
setne cl
jmp dword [ecx*4 + 0x312135c]
mov dword [esp + 8], 0
jmp 0x30fdb47
mov dword [esp + 0x9c], ebx
jmp dword [0x3121364]
cmp dword [ebx + edx*8], 0x625b6034
je 0x30fdc00
inc edx
cmp eax, edx
jne 0x30fdbf0
jmp case.0x30fbb35.175
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je case.0x30fbb35.175
push esi
push 1
push dword [0x3124fac]
push eax
call fcn.03115510
add esp, 0x10
jmp case.0x30fbb35.175
jmp dword [0x31213dc]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x14], 0xb8bbba85
mov byte [esp + 0x18], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x30fdc76
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.03100440
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x30fdc50
mov eax, dword [0x3124fa4]
test eax, eax
je 0x30fdc20
mov ecx, dword [esp + 0x14]
xor edx, edx
mov ebx, dword [0x3124fa8]
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x625b6034
je 0x30fdca0
inc edx
cmp eax, edx
jne 0x30fdc90
jmp 0x30fdc20
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x30fdc20
push esi
push 1
push dword [0x3124fac]
push eax
call fcn.03115510
add esp, 0x10
jmp dword [0x31213dc]
mov dword [esp + 8], 0
jmp dword [0x3121384]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x14], 0xb8bbba85
mov byte [esp + 0x18], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x30fdd26
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.03100440
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x30fdd00
mov eax, dword [0x3124fa4]
test eax, eax
je case.0x30fbb35.175
mov ecx, dword [esp + 0x14]
xor edx, edx
mov ebx, dword [0x3124fa8]
jmp 0x30fdbf0
jmp dword [0x3121344]
lea eax, [ebp + 0x10]
cmp dword [esp + 0x5c], 0xfffffff8
jge 0x30fdd59
mov eax, 0xffffffff
push eax
call fcn.030dc610
add esp, 4
jmp 0x30fd42c
not eax
shr eax, 0x1f
mov dword [esp + 8], 0
jmp dword [eax*4 + 0x312133c]
jmp dword [0x31213d0]
jmp dword [0x31213d8]
push dword [esp + 0x90]
call fcn.030d4530
add esp, 4
mov esi, eax
mov dword [esp + 0x14], 0x181deeeb
mov dword [esp + 0x18], 0xf7f2e4ea
mov dword [esp + 0x1c], 0xf40432
mov dword [esp + 0x20], 0xfffafcf2
mov dword [esp + 0x24], 0xd0d0d
mov word [esp + 0x28], 0xf409
mov byte [esp + 0x2a], 0x92
mov word [esp + 0x2b], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x18
ja 0x30fde1b
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
movzx eax, byte [esp + eax + 0x14]
push dword [esp + 0xc]
push eax
call fcn.03100980
add esp, 8
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x14], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x19
jb 0x30fddf0
lea eax, [esp + 0x14]
push eax
push esi
call fcn.030d4670
add esp, 8
mov edx, 0xffffffff
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
add esi, 2
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x30fde40
mov ecx, edx
and ecx, 0xfffffffc
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
and edx, 3
mov ebx, dword [esp + 0x10]
or ebx, 3
imul ebx, edx
xor edx, 3
imul edx, ecx
add ebx, edx
mov edx, dword [esp + 0x10]
shr ebx, 2
and esi, 0xfffffffc
mov ecx, edx
xor ecx, 1
sub esi, ecx
movzx ecx, byte [eax + esi]
cmp ecx, 0x3d
je 0x30fde90
cmp ecx, 0x2e
jne 0x30fde91
dec ebx
movzx ecx, byte [eax + edx - 2]
cmp ecx, 0x3d
mov dword [esp + 0x4c], eax
je 0x30fdea4
cmp ecx, 0x2e
jne 0x30fdea5
dec ebx
mov dword [esp + 0x8c], ebx
lea eax, [ebx + 1]
push eax
call fcn.030dc610
add esp, 4
mov dword [esp + 0x48], eax
cmp dword [esp + 0x10], 0
je 0x30fdfe7
xor ecx, ecx
mov esi, 2
jmp 0x30fdef4
mov edx, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
mov ecx, dword [esp + 8]
cmp esi, edx
mov esi, eax
jae 0x30fdfe7
mov dword [esp + 0x50], ecx
mov ebx, dword [esp + 0x4c]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.030f0440
add esp, 4
mov byte [esp + 8], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.030f0440
mov edx, dword [esp + 0x14]
add esp, 4
mov ch, al
mov ah, byte [esp + 8]
shl ah, 2
xor al, 0xc0
mov cl, ch
or cl, 0x30
and cl, al
shr cl, 4
add cl, ah
mov ebx, dword [esp + 0x50]
lea eax, [ebx + 1]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov byte [eax + ebx], cl
cmp esi, edx
jae 0x30fdee0
mov bl, ch
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + esi]
push eax
call fcn.030f0440
mov edx, dword [esp + 0x14]
add esp, 4
cmp al, 0x40
je 0x30fdee0
shl bl, 4
mov ecx, eax
xor cl, 0xc0
mov edx, eax
or dl, 0x3c
and dl, cl
shr dl, 2
add dl, bl
mov ebx, dword [esp + 0x50]
lea ecx, [ebx + 2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x48]
mov byte [ecx + ebx + 1], dl
mov edx, dword [esp + 0x10]
lea ecx, [esi + 1]
cmp ecx, edx
jae 0x30fdee0
mov ebx, eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.030f0440
add esp, 4
cmp al, 0x40
je 0x30fded0
shl bl, 6
add al, bl
mov edx, dword [esp + 0x50]
mov ecx, edx
and ecx, 1
mov ebx, dword [esp + 8]
xor ebx, 1
lea ebx, [ebx + ecx*2]
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x48]
mov byte [ecx + edx + 2], al
jmp 0x30fded0
mov eax, dword [esp + 0x8c]
add eax, 0xfffffffb
mov dword [esp], eax
mov eax, dword [esp + 0x48]
add eax, 5
mov dword [esp + 4], eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
push 0x6c625980
push dword [0x3124fb0]
call fcn.03118120
add esp, 8
lea ecx, [esp + 0x68]
mov edx, esp
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
mov ebx, dword [esp + 0x9c]
jmp dword [0x3121370]
push dword [esp + 0x90]
call fcn.030d4530
add esp, 4
mov esi, eax
mov dword [esp + 0x14], 0x181deeeb
mov dword [esp + 0x18], 0xf7f2e4ea
mov dword [esp + 0x1c], 0xf40432
mov dword [esp + 0x20], 0xfffafcf2
mov dword [esp + 0x24], 0xd0d0d
mov word [esp + 0x28], 0xf409
mov byte [esp + 0x2a], 0x92
mov word [esp + 0x2b], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x18
ja 0x30fe0cb
mov eax, dword [esp + 0xc]
movzx eax, byte [esp + eax + 0x14]
push dword [esp + 0xc]
push eax
call fcn.03100980
add esp, 8
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x14], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x19
jb 0x30fe0a0
lea eax, [esp + 0x14]
push eax
push esi
call fcn.030d4670
add esp, 8
mov edx, 0xffffffff
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
add esi, 2
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x30fe0f0
mov ecx, edx
and ecx, 0xfffffffc
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
and edx, 3
mov ebx, dword [esp + 0x10]
or ebx, 3
imul ebx, edx
xor edx, 3
imul edx, ecx
add ebx, edx
mov edx, dword [esp + 0x10]
shr ebx, 2
and esi, 0xfffffffc
mov ecx, edx
xor ecx, 1
sub esi, ecx
movzx ecx, byte [eax + esi]
cmp ecx, 0x3d
je 0x30fe140
cmp ecx, 0x2e
jne 0x30fe141
dec ebx
movzx ecx, byte [eax + edx - 2]
cmp ecx, 0x3d
mov dword [esp + 0x4c], eax
je 0x30fe154
cmp ecx, 0x2e
jne 0x30fe155
dec ebx
mov dword [esp + 0x8c], ebx
lea eax, [ebx + 1]
push eax
call fcn.030dc610
add esp, 4
mov dword [esp + 0x48], eax
cmp dword [esp + 0x10], 0
je 0x30fe297
xor ecx, ecx
mov esi, 2
jmp 0x30fe1a4
mov edx, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
mov ecx, dword [esp + 8]
cmp esi, edx
mov esi, eax
jae 0x30fe297
mov dword [esp + 0x50], ecx
mov ebx, dword [esp + 0x4c]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.030f0440
add esp, 4
mov byte [esp + 8], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.030f0440
mov edx, dword [esp + 0x14]
add esp, 4
mov ch, al
mov ah, byte [esp + 8]
shl ah, 2
xor al, 0xc0
mov cl, ch
or cl, 0x30
and cl, al
shr cl, 4
add cl, ah
mov ebx, dword [esp + 0x50]
lea eax, [ebx + 1]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov byte [eax + ebx], cl
cmp esi, edx
jae 0x30fe190
mov bl, ch
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + esi]
push eax
call fcn.030f0440
mov edx, dword [esp + 0x14]
add esp, 4
cmp al, 0x40
je 0x30fe190
shl bl, 4
mov ecx, eax
xor cl, 0xc0
mov edx, eax
or dl, 0x3c
and dl, cl
shr dl, 2
add dl, bl
mov ebx, dword [esp + 0x50]
lea ecx, [ebx + 2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x48]
mov byte [ecx + ebx + 1], dl
mov edx, dword [esp + 0x10]
lea ecx, [esi + 1]
cmp ecx, edx
jae 0x30fe190
mov ebx, eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.030f0440
add esp, 4
cmp al, 0x40
je 0x30fe180
shl bl, 6
add al, bl
mov edx, dword [esp + 0x50]
mov ecx, edx
and ecx, 1
mov ebx, dword [esp + 8]
xor ebx, 1
lea ebx, [ebx + ecx*2]
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x48]
mov byte [ecx + edx + 2], al
jmp 0x30fe180
mov eax, dword [esp + 0x8c]
add eax, 0xfffffffb
mov dword [esp], eax
mov eax, dword [esp + 0x48]
add eax, 5
mov dword [esp + 4], eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
push 0x6c625980
push dword [0x3124fb0]
call fcn.03118120
add esp, 8
lea ecx, [esp + 0x68]
mov edx, esp
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
jmp case.0x30fbb35.146
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x3121374]
push ebx
call fcn.030dc620
add esp, 4
push ebx
call fcn.030dc620
add esp, 4
jmp dword [0x31213c0]
lea eax, [esp + 0x60]
push 0
push eax
push dword [esp + 0x60]
call fcn.03118f20
add esp, 0xc
lea eax, [esp + 0x60]
push 0
push eax
push dword [esp + 0x60]
call fcn.03118f20
add esp, 0xc
jmp dword [0x3121334]
jmp dword [0x3121308]
jmp dword [0x312130c]
push dword [esp + 0x54]
call fcn.030dc620
add esp, 4
mov eax, dword [case.0x30fbb35.192]
nop
nop
nop
jmp eax
mov eax, dword [esp + 0x94]
and al, 1
add esp, 0xdc
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
jmp dword [0x312155c]
push esi
mov esi, eax
call fcn.030dc620
mov eax, esi
add esp, 4
add esp, 0x94
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x88]
push 0
push eax
push dword [esp + 0x8c]
call fcn.03118f20
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x18], 0
jmp dword [eax*4 + 0x312142c]
mov esi, dword [esp + 0x88]
lea eax, [esi + 1]
push eax
call fcn.030dc610
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0x90]
call fcn.03119000
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp + 0x18], 0
jmp dword [eax*4 + 0x3121434]
mov eax, dword [esp + 0x88]
mov byte [edi + eax], 0
mov dword [esp + 0x18], 0
mov ebp, edi
nop
nop
nop
nop
mov dword [esp + 0x24], 0x525e5c56
mov dword [esp + 0x28], 0x5e55585a
mov dword [esp + 0x2c], 0xc21d07
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x30fe676
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x24]
push dword [esp]
push eax
call fcn.03100ce0
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x24], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x30fe650
movzx ecx, byte [esp + 0x24]
test cl, cl
je 0x30fe6c0
lea eax, [esp + 0x24]
mov esi, ebp
jmp 0x30fe699
movzx ecx, byte [eax]
test cl, cl
mov esi, ebx
je 0x30fe6d2
movzx edx, byte [ebp]
test dl, dl
je 0x30fe6d0
inc ebp
inc eax
mov ebx, esi
inc esi
cmp dl, cl
je 0x30fe6ae
mov ebx, esi
mov ebp, esi
je 0x30fe690
lea eax, [esp + 0x24]
jmp 0x30fe690
mov esi, ebp
jmp 0x30fe6d2
xor esi, esi
xor eax, eax
test esi, esi
sete al
mov dword [esp + 0x7c], esi
jmp dword [eax*4 + 0x312143c]
jmp dword [0x312144c]
lea ebp, [esi + 0xa]
movzx eax, byte [esi + 0xa]
xor ebx, ebx
test al, al
je 0x30fe6f0
mov ecx, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x22
je 0x30fe720
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x30fe710
jmp 0x30fe6f0
mov ebx, ecx
jmp dword [0x312144c]
mov ecx, ebx
sub ecx, ebp
xor eax, eax
mov edx, ecx
mov dword [esp + 0x10], ecx
cmp ecx, 5
setb al
jmp dword [eax*4 + 0x3121454]
xor eax, eax
cmp byte [ebx - 1], 0x74
setne al
jmp dword [eax*4 + 0x312145c]
xor eax, eax
cmp byte [ebx - 2], 0x78
setne al
jmp dword [eax*4 + 0x3121474]
xor eax, eax
cmp byte [ebx - 3], 0x74
setne al
jmp dword [eax*4 + 0x312147c]
xor eax, eax
cmp byte [ebx - 4], 0x2e
setne al
jmp dword [eax*4 + 0x3121484]
mov dword [esp + 0x70], edi
mov eax, dword [esp + 0x10]
lea eax, [eax*2 + 2]
mov dword [esp + 8], eax
jmp dword [0x3121490]
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x10]
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x30fe7b0
mov eax, 0xffffffff
push eax
call fcn.030dc610
add esp, 4
mov ecx, eax
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x10]
lea esi, [ecx + eax*2]
mov ebp, ecx
mov dword [esp + 4], ecx
cmp ecx, esi
jae 0x30fe81a
mov ebp, dword [esp + 4]
cmp dword [esp + 0x14], ebx
jae 0x30fe81a
mov ebp, dword [esp + 4]
mov edi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x30fe81a
lea eax, [esp + 0x24]
push eax
push ebx
push edi
call fcn.030e0f20
add esp, 0xc
movzx ecx, word [esp + 0x24]
mov word [ebp], cx
add ebp, 2
cmp ebp, esi
jae 0x30fe81a
add edi, eax
cmp edi, ebx
jb 0x30fe7f0
mov word [ebp], 0
push 0x60
push 3
push 0x120089
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x14]
call fcn.03118bc0
add esp, 0x14
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x7c]
jmp case.0x30fbb35.221
mov word [esi], 0
push 0x60
push 3
push 0x120089
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x14]
call fcn.03118bc0
add esp, 0x14
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x7c]
jmp dword [0x3121494]
mov eax, dword [esp + 0x10]
inc eax
mov eax, dword [esp + 8]
jns 0x30fe891
mov eax, 0xffffffff
mov dword [esp + 0x14], ebp
push eax
call fcn.030dc610
add esp, 4
mov ecx, eax
mov edi, ebx
mov dword [esp + 0x78], ebx
test ebx, ebx
jne 0x30fe8bb
lea eax, [esi + 9]
nop
nop
nop
lea edi, [eax + 1]
cmp byte [eax + 1], 0
mov eax, edi
jne 0x30fe8b0
mov eax, dword [esp + 0x10]
lea ebp, [ecx + eax*2]
add ebp, 2
mov dword [esp + 0x24], 0
add ebp, 0xfffffffe
mov esi, ecx
mov dword [esp + 4], ecx
cmp ecx, ebp
jae 0x30fe850
mov esi, dword [esp + 4]
cmp dword [esp + 0x14], edi
jae 0x30fe850
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x30fe850
lea eax, [esp + 0x24]
push eax
push edi
push ebx
call fcn.030e0f20
add esp, 0xc
movzx ecx, word [esp + 0x24]
mov word [esi], cx
add esi, 2
cmp esi, ebp
jae 0x30fe850
add ebx, eax
cmp ebx, edi
jb 0x30fe900
jmp 0x30fe850
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x312149c]
mov ebp, ebx
mov edi, dword [esp + 0x70]
jmp dword [0x312151c]
push 0
lea eax, [esp + 0x84]
push eax
push dword [esp + 0x28]
call fcn.03118f20
add esp, 0xc
test eax, eax
setns al
mov esi, dword [esp + 0x80]
cmp esi, 0x100000
setb cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x31214a4]
push esi
call fcn.030dc610
add esp, 4
jmp dword [0x31214b4]
mov ecx, dword [esp + 0x20]
mov dword [esp + 8], ecx
mov edi, eax
jmp dword [0x31214bc]
sub edi, dword [esp + 4]
sar edi, 1
inc edi
mov eax, dword [esp + 0x10]
sub eax, edi
mov dword [esp + 0x68], eax
jmp dword [0x31214dc]
mov dword [esp + 0x6c], edi
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x31214cc]
xor ecx, ecx
mov eax, dword [esp + 4]
jmp 0x30fe9e8
add eax, 2
test dx, dx
je 0x30fe9f9
mov edi, ecx
movzx edx, word [eax]
mov ecx, eax
cmp dx, 0x5c
je 0x30fe9e0
mov ecx, edi
jmp 0x30fe9e0
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x31214d4]
mov dword [esp + 0x68], 0
xor edi, edi
jmp dword [0x31214dc]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], 0xb8bbba85
mov byte [esp + 0x28], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x30fea66
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x24]
push dword [esp]
push eax
call fcn.03100440
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x24], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x30fea40
mov eax, dword [0x3124fa4]
test eax, eax
je 0x30fea98
mov ecx, dword [esp + 0x24]
xor edx, edx
mov edi, dword [0x3124fa8]
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x625b6034
je 0x30fea90
inc edx
cmp eax, edx
jne 0x30fea80
jmp 0x30fea98
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
jne 0x30feab7
mov ebp, ebx
mov edi, dword [esp + 0x70]
jmp dword [0x312151c]
push dword [esp + 4]
call fcn.030dc620
add esp, 4
mov ebp, ebx
jmp case.0x30fbb35.207
push esi
push 1
push dword [0x3124fac]
push eax
call fcn.03115510
add esp, 0x10
mov ebp, ebx
mov edi, dword [esp + 0x70]
jmp dword [0x312151c]
push dword [esp + 0x6c]
call fcn.030dc620
add esp, 4
mov eax, dword [case.0x30fbb35.226]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esp + 0x18]
and cl, 1
or cl, al
mov dword [esp + 0x18], ecx
jmp dword [0x31214ec]
push dword [esp + 0xc]
call fcn.030dc620
add esp, 4
mov eax, dword [case.0x30fbb35.249]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x3121504]
mov eax, dword [esp + 0x68]
add eax, 0x1b
push eax
call fcn.030dc610
add esp, 4
mov dword [esp + 0xc], eax
mov ecx, edi
mov eax, dword [esp + 0x10]
xor ecx, eax
mov esi, edi
not esi
and esi, eax
add esi, esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x1c], ecx
sub esi, ecx
mov dword [esp + 0x24], 0xe0027
mov dword [esp + 0x28], 0xb310702
mov dword [esp + 0x2c], 0x12507700
mov dword [esp + 0x30], 0x5c1f2c14
mov dword [esp + 0x34], 0x261a1e32
mov dword [esp + 0x38], 0x58262010
mov dword [esp + 0x3c], 0x865659
mov dword [esp + 8], edi
add edi, ebp
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1b
ja 0x30febd6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x24]
push dword [esp]
push eax
call fcn.03100d50
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x24], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1c
jb 0x30febb0
movzx ecx, byte [esp + 0x24]
mov eax, dword [esp + 0xc]
test cl, cl
je 0x30febfb
lea edx, [esp + 0x25]
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x30febf0
mov byte [eax], 0
test esi, esi
je 0x30fec2d
mov edx, esi
and edx, 3
je 0x30fec31
xor ecx, ecx
nop
nop
nop
nop
nop
movzx ebx, byte [edi]
cmp bl, 1
sbb edi, 0xffffffff
mov byte [eax + ecx], bl
inc ecx
cmp edx, ecx
jne 0x30fec10
add eax, ecx
sub esi, ecx
mov ecx, eax
mov ebx, dword [esp + 0x78]
jmp 0x30fec31
mov ecx, eax
jmp 0x30fec89
mov edx, dword [esp + 0x1c]
sub edx, dword [esp + 0x8c]
cmp edx, 0xfffffffc
ja 0x30fec89
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
mov byte [eax], cl
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
mov byte [eax + 1], cl
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
mov byte [eax + 2], cl
movzx edx, byte [edi]
cmp dl, 1
sbb edi, 0xffffffff
lea ecx, [eax + 4]
mov byte [eax + 3], dl
mov eax, ecx
add esi, 0xfffffffc
jne 0x30fec50
mov byte [ecx], 0
mov ecx, dword [esp + 0xa8]
push dword [esp + 0x80]
push dword [esp + 0x70]
push dword [esp + 0x14]
call fcn.030dd3a0
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x68]
add eax, 0x1b
push eax
call fcn.030dc610
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
sub eax, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], 0xe0027
mov dword [esp + 0x28], 0xb310702
mov dword [esp + 0x2c], 0x12507700
mov dword [esp + 0x30], 0x5c1f2c14
mov dword [esp + 0x34], 0x261a1e32
mov dword [esp + 0x38], 0x58262010
mov dword [esp + 0x3c], 0x865659
mov dword [esp + 8], edi
add edi, ebp
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1b
ja 0x30fed46
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x24]
push dword [esp]
push eax
call fcn.03100d50
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x24], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1c
jb 0x30fed20
movzx ecx, byte [esp + 0x24]
mov eax, dword [esp + 0xc]
test cl, cl
je 0x30fed6b
lea edx, [esp + 0x25]
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x30fed60
mov byte [eax], 0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x30fedaf
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x7c]
add edx, ecx
mov ecx, ebx
sub ecx, edx
add ecx, 0xfffffff5
and esi, 3
je 0x30fedb3
xor edx, edx
nop
nop
movzx ebx, byte [edi]
cmp bl, 1
sbb edi, 0xffffffff
mov byte [eax + edx], bl
inc edx
cmp esi, edx
jne 0x30fed90
add eax, edx
sub dword [esp + 0x1c], edx
mov edx, eax
mov ebx, dword [esp + 0x78]
jmp 0x30fedb3
mov edx, eax
jmp 0x30fedf9
cmp ecx, 3
mov esi, dword [esp + 0x1c]
jb 0x30fedf9
nop
nop
nop
nop
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
mov byte [eax], cl
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
mov byte [eax + 1], cl
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
mov byte [eax + 2], cl
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
lea edx, [eax + 4]
mov byte [eax + 3], cl
mov eax, edx
add esi, 0xfffffffc
jne 0x30fedc0
mov byte [edx], 0
mov ecx, dword [esp + 0xa8]
push dword [esp + 0x80]
push dword [esp + 0x70]
push dword [esp + 0x14]
call fcn.030dd3a0
mov edi, dword [esp + 8]
jmp dword [0x31214e8]
push 0
push esi
push edi
push dword [esp + 0x14]
call fcn.03119000
add esp, 0x10
push 0
push esi
push edi
push dword [esp + 0x14]
call fcn.03119000
add esp, 0x10
jmp dword [0x31214c8]
jmp dword [0x312152c]
jmp dword [0x3121544]
push edi
call fcn.030dc620
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x3121554]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x24], 0xb8bbba85
mov byte [esp + 0x28], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x30feec6
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x24]
push dword [esp]
push eax
call fcn.03100440
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x24], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x30feea0
mov eax, dword [0x3124fa4]
test eax, eax
je 0x30feef8
mov ecx, dword [esp + 0x24]
xor edx, edx
mov edi, dword [0x3124fa8]
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x625b6034
je 0x30feef0
inc edx
cmp eax, edx
jne 0x30feee0
jmp 0x30feef8
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
jne 0x30fef08
mov eax, dword [esp + 0x18]
and al, 1
mov esi, dword [esp + 0x74]
jmp dword [0x312155c]
push esi
push 1
push dword [0x3124fac]
push eax
call fcn.03115510
add esp, 0x10
mov eax, dword [esp + 0x18]
and al, 1
mov esi, dword [esp + 0x74]
jmp dword [0x312155c]
mov al, 0xf
add esp, dword [ecx - 0x4a]
lsl ecx, word [ecx - 0x4a]
lsl edx, edi
mov al, 0xf
add ebx, dword [ebx - 0x4a]
lsl esi, word [eax - 0x4a]
lsl ebp, word [ebx]
mov cl, 0xf
add eax, dword [eax - 0x4f]
lsl eax, eax
mov al, 0xf
add ecx, dword [ecx - 0x4f]
lsl eax, eax
mov al, 0xf
add edi, dword [edi - 0x4f]
lsl eax, eax
mov al, 0xf
add ebp, dword [edi - 0x6cfcf04f]
mov bl, 0xf
add edi, dword [ebp + 0x2a030fb1]
mov ch, 0xf
add edx, dword [ebx + 0x30030fb3]
mov ch, 0xf
add edi, dword [0x58030fb5]
mov ch, 0xf
add ebx, dword [edi - 0x4b]
lsl edx, edi
mov ch, 0xf
add ebx, edi
mov ch, 0xf
add esp, dword [edi + esi*4]
lsl esi, word [eax]
mov bh, 0xf
add eax, dword [eax - 0x7ffcf049]
mov bh, 0xf
add eax, dword [eax - 0x3ffcf049]
mov bh, 0xf
add eax, dword [ecx]
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx + 0x1030fce], dh
add byte [eax], al
add byte [ecx - 0x45], ah
lsl ecx, edx
mov bh, 0xf
add ecx, esi
mov eax, 0xba80030f
lsl esi, eax
mov ecx, 0xb902030f
lsl esi, eax
mov ecx, 0xb9be030f
lsl eax, esi
mov ecx, 0xb9f0030f
lsl esp, eax
mov ecx, 0xb9e0030f
lsl esi, eax
mov ecx, 0xb9e0030f
lsl edi, word [esi + 0x40030fba]
mov edx, 0xbb40030f
lsl ebp, ecx
mov edx, 0xbb01030f
lsl eax, eax
mov bh, 0xf
add esi, dword [eax + 0x61030fb7]
mov edx, 0xbb40030f
lsl ebp, ecx
mov edx, 0xbb01030f
lsl eax, eax
mov bh, 0xf
add esi, dword [eax + 0x61030fb7]
mov ebx, 0xb7c0030f
lsl esi, word [esi - 0x45]
lsl ecx, word [eax - 0x50fcf043]
mov esp, 0xbd72030f
lsl eax, word [edx - 0x37fcf043]
mov esp, 0xcb21030f
lsl ecx, word [ebx]
retf
ror dword [edi], 3
xchg ebx, eax
mov ebp, -1054604529
lsl eax, eax
mov ebp, 0xbff0030f
lsl esi, eax
mov edi, 0xbff0030f
lsl esi, edx
mov edi, 0xc130030f
lsl eax, word [esi - 0x3f]
lsl edx, word [eax - 0x3f]
lsl edx, word [eax - 0x3f]
lsl edx, word [edx - 0x3f]
lsl edx, word [eax - 0x3f]
lsl ebx, word [esi - 0x3f]
lsl eax, word [eax + 0x70030fc1]
ror dword [edi], 3
ror dword fs:[edi], 3
add cl, 15
add esi, dword [eax - 63]
lsl eax, word [eax - 0x7ffcf03f]
ror dword [edi], 3
add cl, 0xf
add esi, dword [edi + 16977863]
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx + 0x1030fce], dh
add byte [eax], al
add byte [edi + eax*8 + 0xf], ah
add ecx, dword [esi - 0x63fcf038]
enter 0x30f, 0x7d
invalid
ror dword [edi], 3
ror edx, 0xf
add esp, dword [eax + 1208160205]
invalid
int3
ret
ret 0x30f
les ecx, [edi]
add edi, dword [ebp + 0x1030fc4]
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebp + 0x1030fc4], bh
add byte [eax], al
add al, ch
les ecx, [edi]
add esp, dword [eax - 0xbfcf03c]
les ecx, [edi]
add ebp, dword [ebx + 0x2030fc4]
lds ecx, [edi]
add edx, dword [ecx]
lds ecx, [edi]
add esp, dword [eax - 0x56fcf03b]
lds ecx, [edi]
add ecx, dword [esi + eax*8 - 0x3e45fcf1]
lsl esp, word [ebx - 0x34]
lsl edx, word [ecx - 0x68fcf033]
int 0xf
add esp, dword [eax - 0x63fcf033]
int3