Function at 0x10003120
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov esi, dword [esp + 0x50]
mov ebp, 0x80000100
test esi, esi
je 0x10005eac
mov edi, dword [esp + 0x54]
test edi, edi
je 0x10005eac
cmp dword [esp + 0x58], 0
je 0x10005eac
mov ebx, dword [esp + 0x5c]
test ebx, ebx
je 0x10005eac
mov ecx, dword [ebx]
mov edx, ecx
and edx, 0xf
cmp edx, 2
ja 0x10005eac
mov edx, ecx
and edx, 0xf0
cmp edx, 0x20
ja 0x10005eac
and ecx, 0xf000
cmp ecx, 0x4000
ja 0x10005eac
push 0x358
push 0
push esi
call fcn.10006c10
add esp, 0xc
mov ah, byte [ebx]
and ah, 0xf
mov al, byte [esi]
movzx edx, byte [esi + 1]
and al, 0xf0
or al, ah
mov byte [esi], al
movzx ecx, byte [ebx]
and cl, 0xf0
mov byte [esp + 0xc], ah
or cl, ah
mov byte [esi], cl
movzx eax, byte [ebx + 1]
and al, 0xf
and dl, 0xf0
or dl, al
mov byte [esi + 1], dl
movzx edx, byte [ebx + 1]
and dl, 0xf0
or dl, al
mov byte [esi + 1], dl
movzx eax, byte [ebx + 2]
mov byte [esi + 2], al
mov eax, dword [esp + 0x58]
cmp eax, 0xf
mov ebx, 0xf
cmovb ebx, eax
lea eax, [ebx - 1]
mov edx, ebx
and edx, 3
xor ebp, ebp
cmp eax, 3
jb 0x10003246
and ebx, 0xc
xor ebp, ebp
nop word cs:[eax + eax]
movzx eax, byte [edi + ebp]
mov byte [esi + ebp + 0x343], al
movzx eax, byte [edi + ebp + 1]
mov byte [esi + ebp + 0x344], al
movzx eax, byte [edi + ebp + 2]
mov byte [esi + ebp + 0x345], al
movzx eax, byte [edi + ebp + 3]
mov byte [esi + ebp + 0x346], al
add ebp, 4
cmp ebx, ebp
jne 0x10003210
test edx, edx
je 0x1000326b
lea eax, [esi + ebp]
add eax, 0x343
add edi, ebp
xor ebx, ebx
nop word cs:[eax + eax]
mov ch, byte [edi + ebx]
mov byte [eax + ebx], ch
inc ebx
cmp edx, ebx
jne 0x10003260
lea edi, [esi + 0x343]
movzx eax, byte [esi + 0x343]
cmp byte [eax + 0x100ca4b4], 0
je 0x1000347c
xor ebx, ebx
mov ch, byte [esp + 0xc]
jmp 0x100032a6
mov dword [esi + 0x24], eax
movzx eax, byte [esi + 0xc]
inc al
mov byte [esi + 0xc], al
inc bl
cmp al, 0xf
ja 0x10003c92
movzx ebx, bl
cmp ebx, dword [esp + 0x58]
jae 0x10005d36
mov cl, byte [edi + ebx]
movzx edx, cl
movzx eax, byte [edx + 0x100ca4b4]
cmp eax, 1
je 0x10003320
test eax, eax
je 0x10003455
cmp ch, 2
jne 0x100033d0
cmp al, 3
jne 0x100033d0
or byte [esi + 6], 0x10
mov byte [esi + 0x1c], cl
mov edx, dword [esi + 0x24]
and edx, 0xfffffff0
mov ah, cl
and ah, 0xf
mov al, cl
add al, cl
and al, 4
shl cl, 3
and cl, 8
or cl, al
mov al, ah
shr al, 1
and al, 2
or al, cl
shr ah, 3
or ah, al
movzx eax, ah
or eax, edx
jmp 0x10003290
cmp edx, 0xef
jg 0x10003370
add edx, 0xffffffda
cmp edx, 0x41
ja case.0x10003334.39
jmp dword [edx*4 + 0x100ca720]
cmp ch, 2
jne 0x10003348
mov eax, ecx
and al, 0xfe
cmp al, 0x64
jne 0x10003390
mov byte [esi + 0x1a], cl
mov cl, 0x40
or byte [esi + 7], cl
movzx eax, byte [esi + 6]
test al, 0x10
je 0x10003293
and al, 0xef
mov byte [esi + 6], al
mov byte [esi + 0x1c], 0
mov eax, dword [esi + 0x24]
and eax, 0xfffffff0
jmp 0x10003290
cmp edx, 0xf0
je 0x100033b1
cmp edx, 0xf2
je 0x100033b5
cmp edx, 0xf3
jne case.0x10003334.39
mov byte [esi + 0x19], 0xf3
mov cl, 0x20
jmp 0x1000334d
movzx eax, byte [esi + 0x1a]
cmp cl, 0x3e
jne 0x100033bd
mov edx, eax
and dl, 0xfe
cmp dl, 0x64
je 0x100033bd
mov byte [esi + 0x1a], 0x3e
jmp 0x1000334b
mov cl, 2
jmp 0x1000334d
mov cl, 4
jmp 0x1000334d
mov cl, 8
jmp 0x1000334d
mov byte [esi + 0x19], 0xf2
mov cl, 0x10
jmp 0x1000334d
lea edx, [eax - 0x64]
cmp edx, 2
jb 0x10003350
cmp eax, 0x3e
jne 0x10003348
jmp 0x10003350
cmp al, 2
jne case.0x10003334.39
mov ebp, 0x80000101
cmp edx, 0xc3
jg 0x10003408
cmp edx, 0x62
je 0x1000342c
cmp edx, 0x8f
jne 0x10005eac
mov ecx, esi
mov edx, edi
push dword [esp + 0x58]
push ebx
call fcn.10006220
jmp 0x1000344a
and byte [esi + 3], 0xf0
jmp 0x10003455
cmp edx, 0xc4
je 0x1000343c
cmp edx, 0xc5
jne 0x10005eac
mov ecx, esi
mov edx, edi
push dword [esp + 0x58]
push ebx
call fcn.10006380
jmp 0x1000344a
mov ecx, esi
mov edx, edi
push dword [esp + 0x58]
push ebx
call fcn.10006590
jmp 0x1000344a
mov ecx, esi
mov edx, edi
push dword [esp + 0x58]
push ebx
call fcn.10006450
add esp, 8
test eax, eax
js 0x10005d4a
movzx ecx, byte [esi]
movzx eax, byte [esi + 0xc]
movzx edx, byte [esi + 0x12]
mov ah, al
and ah, 0xf
and dl, 0xf0
or dl, ah
mov byte [esi + 0x12], dl
movzx edx, byte [esi + 0xd]
shl al, 4
and dl, 0xf
or dl, al
mov byte [esi + 0xd], dl
and cl, 0xf
cmp cl, 2
je 0x100034a9
movzx eax, cl
cmp eax, 1
je 0x100034d1
test eax, eax
jne case.default.0x1000451a
movzx eax, byte [esi + 7]
mov ecx, eax
shr cl, 2
and cl, 1
shl al, 3
and al, 0x10
or al, cl
jmp 0x100034e6
movzx eax, byte [esi + 7]
test al, 4
sete cl
not al
shl al, 3
and al, 0x10
test byte [esi + 0x24], 1
movzx edx, al
mov eax, 0x20
cmove eax, edx
or al, cl
inc al
mov byte [esi + 4], al
jmp 0x100034e9
movzx eax, byte [esi + 7]
mov ecx, eax
shr cl, 2
and cl, 1
shl al, 3
and al, 0x10
or al, cl
xor al, 0x11
mov byte [esi + 4], al
movzx eax, byte [esi + 3]
and eax, 0xf
cmp al, 3
ja 0x10005ea7
mov ebx, dword [eax*4 + 0x100ca710]
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], 0
xor ebp, ebp
nop dword [eax]
mov ecx, dword [ebx]
cmp ecx, 0x11
ja case.default.0x1000352b
jmp dword [ecx*4 + 0x100ca828]
mov ch, byte [esi + 8]
test ch, 0x10
jne case.0x1000352b.1
movzx eax, byte [esi + 0xc]
mov ebp, 0x80000001
cmp eax, dword [esp + 0x58]
jae 0x10005eac
mov dl, ch
or dl, 0x10
mov byte [esi + 8], dl
movzx edx, byte [esi + eax + 0x343]
mov byte [esi + 0x1d], dl
mov dh, byte [esi + 0x17]
mov cl, al
and cl, 0xf
and dh, 0xf0
or dh, cl
mov byte [esi + 0x17], dh
mov dh, al
inc dh
mov byte [esi + 0xc], dh
cmp dh, 0xf
ja 0x10003c92
cmp dl, 0xbf
ja 0x100035c9
and dl, 7
cmp dl, 4
jne 0x100035c9
test byte [esi + 4], 0xf
je 0x100035c9
movzx edx, dh
cmp edx, dword [esp + 0x58]
jae 0x10005eac
or ch, 0x30
mov byte [esi + 8], ch
movzx ecx, byte [esi + edx + 0x343]
mov byte [esi + 0x1e], cl
add al, 2
mov byte [esi + 0xc], al
mov dh, al
mov ebp, 0x80000003
cmp al, 0xf
ja 0x10005eac
movzx eax, dh
mov ecx, esi
mov edx, edi
push dword [esp + 0x58]
push eax
call fcn.10006760
add esp, 8
test eax, eax
js 0x10005d4a
movzx eax, byte [esi + 0xc]
cmp eax, dword [esp + 0x58]
jae 0x10005d36
movzx edx, byte [esi + eax + 0x343]
movzx ecx, byte [esi + 0xe]
mov ebp, ecx
and ebp, 0xf
mov dh, cl
inc dh
and dh, 0xf
and cl, 0xf0
or cl, dh
mov byte [esi + 0xe], cl
mov byte [esi + ebp + 0x33f], dl
inc al
mov byte [esi + 0xc], al
cmp al, 0xf
ja 0x10003c92
mov ecx, dword [esp + 0xc]
movzx eax, byte [esi + ecx + 0x33f]
inc ecx
mov dword [esp + 0xc], ecx
lea ebx, [ebx + eax*4]
add ebx, 4
xor ebp, ebp
jmp 0x10003be0
movzx eax, byte [esi + 8]
test al, 0x10
jne 0x10003701
movzx ecx, byte [esi + 0xc]
mov ebp, 0x80000001
cmp ecx, dword [esp + 0x58]
jae 0x10005eac
mov byte [esp + 0x2c], al
or al, 0x10
mov byte [esi + 8], al
movzx edx, byte [esi + ecx + 0x343]
mov byte [esi + 0x1d], dl
movzx eax, byte [esi + 0x17]
mov ah, cl
and ah, 0xf
and al, 0xf0
or al, ah
mov byte [esi + 0x17], al
mov dh, cl
inc dh
mov byte [esi + 0xc], dh
cmp dh, 0xf
ja 0x10003c92
cmp dl, 0xbf
ja 0x100036e3
and dl, 7
cmp dl, 4
jne 0x100036e3
test byte [esi + 4], 0xf
je 0x100036e3
movzx edx, dh
cmp edx, dword [esp + 0x58]
jae 0x10005eac
movzx eax, byte [esp + 0x2c]
or al, 0x30
mov byte [esi + 8], al
movzx eax, byte [esi + edx + 0x343]
mov byte [esi + 0x1e], al
add cl, 2
mov byte [esi + 0xc], cl
mov dh, cl
mov ebp, 0x80000003
cmp cl, 0xf
ja 0x10005eac
movzx eax, dh
mov ecx, esi
mov edx, edi
push dword [esp + 0x58]
push eax
call fcn.10006760
add esp, 8
xor ebp, ebp
test eax, eax
js 0x10003c08
xor eax, eax
cmp byte [esi + 0x1d], 0xc0
setae al
lea ebx, [ebx + eax*4]
add ebx, 4
jmp 0x10003be0
movzx eax, byte [esi + 8]
test al, 0x10
jne 0x100037d1
movzx ecx, byte [esi + 0xc]
mov ebp, 0x80000001
cmp ecx, dword [esp + 0x58]
jae 0x10005eac
mov byte [esp + 0x2c], al
or al, 0x10
mov byte [esi + 8], al
movzx edx, byte [esi + ecx + 0x343]
mov byte [esi + 0x1d], dl
movzx eax, byte [esi + 0x17]
mov ah, cl
and ah, 0xf
and al, 0xf0
or al, ah
mov byte [esi + 0x17], al
mov dh, cl
inc dh
mov byte [esi + 0xc], dh
cmp dh, 0xf
ja 0x10003c92
cmp dl, 0xbf
ja 0x100037b3
and dl, 7
cmp dl, 4
jne 0x100037b3
test byte [esi + 4], 0xf
je 0x100037b3
movzx edx, dh
cmp edx, dword [esp + 0x58]
jae 0x10005eac
movzx eax, byte [esp + 0x2c]
or al, 0x30
mov byte [esi + 8], al
movzx eax, byte [esi + edx + 0x343]
mov byte [esi + 0x1e], al
add cl, 2
mov byte [esi + 0xc], cl
mov dh, cl
mov ebp, 0x80000003
cmp cl, 0xf
ja 0x10005eac
movzx eax, dh
mov ecx, esi
mov edx, edi
push dword [esp + 0x58]
push eax
call fcn.10006760
add esp, 8
xor ebp, ebp
test eax, eax
js 0x10003c08
movzx eax, byte [esi + 0x1d]
shr eax, 1
and eax, 0x1c
add ebx, eax
add ebx, 4
jmp 0x10003be0
movzx eax, byte [esi + 8]
test al, 0x10
jne 0x100038a0
movzx ecx, byte [esi + 0xc]
mov ebp, 0x80000001
cmp ecx, dword [esp + 0x58]
jae 0x10005eac
mov byte [esp + 0x2c], al
or al, 0x10
mov byte [esi + 8], al
movzx edx, byte [esi + ecx + 0x343]
mov byte [esi + 0x1d], dl
movzx eax, byte [esi + 0x17]
mov ah, cl
and ah, 0xf
and al, 0xf0
or al, ah
mov byte [esi + 0x17], al
mov dh, cl
inc dh
mov byte [esi + 0xc], dh
cmp dh, 0xf
ja 0x10003c92
cmp dl, 0xbf
ja 0x10003882
and dl, 7
cmp dl, 4
jne 0x10003882
test byte [esi + 4], 0xf
je 0x10003882
movzx edx, dh
cmp edx, dword [esp + 0x58]
movzx eax, byte [esp + 0x2c]
jae 0x10005eac
or al, 0x30
mov byte [esi + 8], al
movzx eax, byte [esi + edx + 0x343]
mov byte [esi + 0x1e], al
add cl, 2
mov byte [esi + 0xc], cl
mov dh, cl
mov ebp, 0x80000003
cmp cl, 0xf
ja 0x10005eac
movzx eax, dh
mov ecx, esi
mov edx, edi
push dword [esp + 0x58]
push eax
call fcn.10006760
add esp, 8
mov ebp, eax
test eax, eax
js 0x10005eac
movzx eax, byte [esi + 0x1d]
and eax, 7
lea ebx, [ebx + eax*4]
add ebx, 4
jmp 0x10003be0
movzx ecx, byte [esi + 0x19]
cmp cl, 0xf2
jne 0x10003b92
cmp byte [esp + 0x24], 0
jne 0x10003b92
or byte [esi + 0xb], 1
mov ecx, 3
mov al, 1
mov dword [esp + 0x24], eax
jmp 0x10003bcd
movzx eax, byte [esi]
jmp 0x10003939
movzx eax, byte [esi + 4]
shr eax, 4
movzx ecx, byte [eax + 0x100ca5b4]
mov eax, dword [ebx + ecx*4 + 4]
test eax, eax
cmove ecx, eax
movzx eax, byte [esi]
and al, 0xf
cmp al, 2
jne 0x1000392e
cmp dword [ebx + 0x14], 0
je 0x10003922
mov edx, 4
test byte [esi + 7], 2
je 0x100039df
test byte [esi + 0x24], 1
jne 0x100039df
cmp dword [ebx + 0x18], 0
mov eax, 5
cmovne ecx, eax
mov edx, ecx
jmp 0x100039df
movzx eax, byte [esi + 4]
and eax, 0xf
movzx eax, byte [eax + 0x100ca5b4]
mov ecx, dword [ebx + eax*4 + 4]
test ecx, ecx
cmove eax, ecx
lea ebx, [ebx + eax*4]
add ebx, 4
jmp 0x10003be0
test byte [esi + 6], 0x10
je 0x10003981
movzx ecx, byte [esi + 0x1c]
test cl, 1
je 0x10003971
mov edx, 1
cmp dword [ebx + 8], 0
jne 0x100039df
test cl, 8
je 0x10003981
mov edx, 2
cmp dword [ebx + 0xc], 0
jne 0x100039df
movzx ecx, byte [esi]
and cl, 0xf
cmp cl, 2
jne 0x10003997
mov edx, 3
cmp dword [ebx + 0x10], 0
jne 0x100039df
movzx edx, byte [esi + 0x19]
test edx, edx
je 0x100039bd
cmp edx, 0xf3
jne 0x100039b2
mov edx, 4
cmp dword [ebx + 0x14], 0
jne 0x100039df
mov edx, 5
cmp dword [ebx + 0x18], 0
jne 0x100039df
cmp cl, 2
jne 0x100039dd
test byte [esi + 8], 0x10
je 0x100039dd
movzx eax, byte [esi + 0x1d]
and al, 0xc7
cmp al, 5
jne 0x100039dd
mov edx, 6
cmp dword [ebx + 0x1c], 0
jne 0x100039df
xor edx, edx
lea ebx, [ebx + edx*4]
add ebx, 4
jmp 0x10003be0
movzx eax, byte [esi + 1]
shr eax, 2
and eax, 0x3c
mov ecx, dword [ebx + eax + 4]
test ecx, ecx
jne 0x10003be2
add ebx, 4
jmp 0x10003be0
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x10003a19
test byte [esi + 2], 1
jne 0x10003be2
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x10003a2a
test byte [esi + 2], 2
jne 0x10003be2
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x10003a3b
test byte [esi + 2], 4
jne 0x10003be2
mov ecx, dword [ebx + 0x14]
add ebx, 4
test ecx, ecx
je 0x10003be0
test byte [esi + 2], 8
je 0x10003be0
jmp 0x10003be2
mov eax, dword [esi + 0x24]
shr eax, 5
and eax, 0x7c
add ebx, eax
add ebx, 4
jmp 0x10003be0
mov eax, dword [esi + 0x24]
shr eax, 3
and eax, 0xc
add ebx, eax
add ebx, 4
jmp 0x10003be0
mov ecx, dword [esi + 0x24]
cmp byte [esi + 6], 0
jns 0x10003baf
mov eax, ecx
and eax, 0x80000
je 0x10003baf
movzx eax, byte [esi + 8]
test al, 0x10
jne 0x10003b54
movzx ecx, byte [esi + 0xc]
mov ebp, 0x80000001
cmp ecx, dword [esp + 0x58]
jae 0x10005eac
mov byte [esp + 0x2c], al
or al, 0x10
mov byte [esi + 8], al
movzx edx, byte [esi + ecx + 0x343]
mov byte [esi + 0x1d], dl
movzx eax, byte [esi + 0x17]
mov ah, cl
and ah, 0xf
and al, 0xf0
or al, ah
mov byte [esi + 0x17], al
mov dh, cl
inc dh
mov byte [esi + 0xc], dh
cmp dh, 0xf
ja 0x10003c92
cmp dl, 0xbf
ja 0x10003b36
and dl, 7
cmp dl, 4
jne 0x10003b36
test byte [esi + 4], 0xf
je 0x10003b36
movzx edx, dh
cmp edx, dword [esp + 0x58]
jae 0x10005eac
movzx eax, byte [esp + 0x2c]
or al, 0x30
mov byte [esi + 8], al
movzx eax, byte [esi + edx + 0x343]
mov byte [esi + 0x1e], al
add cl, 2
mov byte [esi + 0xc], cl
mov dh, cl
mov ebp, 0x80000003
cmp cl, 0xf
ja 0x10005eac
movzx eax, dh
mov ecx, esi
mov edx, edi
push dword [esp + 0x58]
push eax
call fcn.10006760
add esp, 8
xor ebp, ebp
test eax, eax
js 0x10003c08
cmp byte [esi + 0x1d], 0xc0
jb 0x10003bee
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jne 0x10003be2
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x10003be2
jmp 0x10003a00
mov eax, dword [esi + 0x24]
and eax, 1
lea ebx, [ebx + eax*4]
add ebx, 4
jmp 0x10003be0
movzx eax, byte [esi]
and al, 0xf
xor ecx, ecx
cmp al, 2
jne 0x10003bcd
mov ecx, dword [esi + 0x24]
and ecx, 1
jmp 0x10003bcd
cmp cl, 0xf3
jne 0x10003bbc
cmp byte [esp + 0x14], 0
jne 0x10003bbc
or byte [esi + 0xb], 2
mov ecx, 2
mov al, 1
mov dword [esp + 0x14], eax
jmp 0x10003bcd
shr ecx, 0xa
and ecx, 0xc
add ebx, ecx
add ebx, 4
jmp 0x10003be0
xor ecx, ecx
test byte [esi + 7], 2
je 0x10003bcd
or byte [esi + 0xa], 0x80
mov ecx, 1
lea ebx, [ebx + ecx*4]
add ebx, 4
nop word cs:[eax + eax]
mov ecx, dword [ebx]
mov ebx, ecx
test ecx, ecx
jne 0x10003520
jmp 0x10003bf9
mov eax, dword [esi + 0x24]
shr eax, 0xa
jmp 0x10003a71
test ebp, ebp
mov eax, 0x80000002
cmovns ebp, eax
jmp 0x10005eac
mov ecx, eax
mov ebp, eax
jmp 0x10005eac
mov ebp, 0x80000200
jmp 0x10005eac
test ebp, ebp
js 0x10005eac
mov eax, dword [ebx + 4]
test eax, eax
je 0x10005ea7
mov dword [esp + 0x28], eax
mov eax, dword [eax + 0x14]
test al, 1
je 0x10003d3f
movzx edx, byte [esi + 8]
test dl, 0x10
jne 0x10003d3f
movzx ecx, byte [esi + 0xc]
mov ebp, 0x80000001
test eax, 0x20000
jne 0x10003c9c
cmp ecx, dword [esp + 0x58]
jae 0x10005eac
mov eax, edx
or al, 0x10
mov byte [esi + 8], al
movzx ebx, byte [esi + ecx + 0x343]
mov byte [esi + 0x1d], bl
movzx eax, byte [esi + 0x17]
mov ah, cl
and ah, 0xf
and al, 0xf0
or al, ah
mov byte [esi + 0x17], al
mov dh, cl
inc dh
mov byte [esi + 0xc], dh
cmp dh, 0xf
jbe 0x10003cdc
mov ebp, 0x80000003
jmp 0x10005eac
cmp ecx, dword [esp + 0x58]
jae 0x10005eac
or dl, 0x10
mov byte [esi + 8], dl
movzx eax, byte [esi + ecx + 0x343]
mov byte [esi + 0x1d], al
movzx eax, byte [esi + 0x17]
mov edx, ecx
and dl, 0xf
and al, 0xf0
or al, dl
mov byte [esi + 0x17], al
inc cl
mov byte [esi + 0xc], cl
mov ebp, 0x80000003
cmp cl, 0xf
ja 0x10005eac
jmp 0x10003d3f
cmp bl, 0xbf
ja 0x10003d23
and bl, 7
cmp bl, 4
jne 0x10003d23
test byte [esi + 4], 0xf
je 0x10003d23
movzx ebx, dh
cmp ebx, dword [esp + 0x58]
jae 0x10005eac
or dl, 0x30
mov byte [esi + 8], dl
movzx eax, byte [esi + ebx + 0x343]
mov byte [esi + 0x1e], al
add cl, 2
mov byte [esi + 0xc], cl
mov dh, cl
mov ebp, 0x80000003
cmp cl, 0xf
ja 0x10005eac
movzx eax, dh
mov ecx, esi
mov edx, edi
push dword [esp + 0x58]
push eax
call fcn.10006760
add esp, 8
test eax, eax
js 0x10005d4a
movzx eax, byte [esi + 0xe]
and eax, 0xf
movzx ecx, byte [eax + esi + 0x33e]
mov byte [esi + 0x342], cl
test byte [esi + 0x301], 8
jne 0x10003d68
movzx ecx, byte [esi + 0x12]
and cl, 0xf
add al, cl
jmp 0x10003d73
movzx eax, byte [esi + 0xc]
movzx ecx, byte [esi + 0x12]
and cl, 0xf
mov ebx, dword [esp + 0x28]
shl al, 4
or al, cl
add al, 0xf0
mov byte [esi + 0x12], al
movzx edx, byte [esi]
and edx, 0xf
mov eax, dword [ebx + 0x14]
mov ebp, 0x80000009
mov ebx, eax
cmp dl, 2
jne 0x10003da0
test al, 0x10
jne 0x10005eac
jmp 0x10003da8
test al, 8
jne 0x10005eac
mov dword [esi + 0x300], ebx
mov ebp, dword [esp + 0x28]
movzx eax, word [ebp]
mov dword [esi + 0x304], eax
movzx eax, byte [ebp + 2]
mov dword [esi + 0x308], eax
movzx eax, byte [ebp + 3]
mov dword [esi + 0x30c], eax
mov eax, dword [ebp + 0x2c]
and eax, dword [ebp + 0x28]
mov dword [esi + 0x2f4], eax
mov ecx, dword [ebp + 0x20]
mov dword [esi + 0x2e4], ecx
mov ecx, dword [ebp + 0x24]
mov dword [esi + 0x2e8], ecx
mov ecx, dword [ebp + 0x28]
xor ecx, eax
mov dword [esi + 0x2ec], ecx
xor eax, dword [ebp + 0x2c]
mov dword [esi + 0x2f0], eax
movsd xmm0, qword [ebp + 0x18]
movsd qword [esi + 0x310], xmm0
mov eax, dword [ebp + 8]
mov dword [esi + 0x318], eax
movzx eax, word [ebp + 6]
mov word [esi + 0x31c], ax
movzx eax, byte [ebp + 0xc]
mov byte [esi + 0x31e], al
movzx eax, byte [ebp + 0x10]
mov byte [esi + 0x2f8], al
movzx eax, byte [ebp + 0xf]
shr al, 5
mov byte [esi + 0x2f9], al
movzx eax, byte [ebp + 0xf]
and al, 0x1f
mov byte [esi + 0x2fa], al
movzx eax, byte [ebp + 0xe]
mov byte [esi + 0x2fb], al
mov eax, 0xffffffe1
movzx ecx, word [ebp + 4]
mov ecx, dword [ecx*4 + 0x100d2ba0]
movzx ecx, byte [ecx + eax + 0x1f]
mov byte [esi + eax + 0x33e], cl
test cl, cl
je 0x10003e83
lea ecx, [eax + 1]
test eax, eax
mov eax, ecx
jne 0x10003e5f
cmp dl, 2
je 0x10003e95
mov eax, ebx
and eax, 0x40000000
je 0x10003e95
and byte [esi + 0x24], 0xfe
test bl, 2
jne 0x10003eac
mov eax, ebx
shr eax, 2
and eax, 1
mov dword [esp + 0xc], 0
jmp 0x10003ecf
movzx ecx, byte [esi + 1]
and cl, 0xf0
cmp cl, 0x20
setne al
mov dword [esp + 0xc], eax
mov eax, 1
test bl, 4
jne 0x10003ecf
xor eax, eax
cmp cl, 0x20
sete al
test byte [esi + 7], 2
jne 0x10003ed9
xor ecx, ecx
jmp 0x10003ee9
mov cl, 1
cmp byte [esi + 0xa], 0
jns 0x10003ee9
mov ecx, ebx
shr ecx, 0x13
and cl, 1
cmp edx, 2
je 0x10003f05
cmp edx, 1
je 0x10003f6f
test edx, edx
jne case.default.0x1000451a
movzx eax, byte [esi + 5]
and al, 0xf0
or al, cl
jmp 0x10003f79
mov ebp, dword [esi + 0x24]
mov dword [esp + 0x24], ebx
test ebx, 0x400
sete dl
mov ebx, ebp
and dl, bl
or dl, byte [esp + 0xc]
mov dl, 2
jne 0x10003f38
mov edx, ecx
xor dl, 1
test cl, cl
movzx ecx, dl
mov edx, 2
cmovne edx, ecx
test eax, eax
cmove edx, ecx
movzx ecx, byte [esi + 4]
movzx eax, byte [esi + 5]
and al, 0xf0
or al, dl
mov edx, ecx
and dl, 0xf
mov ebx, dword [esp + 0x24]
test ebx, 0x10000000
movzx ebp, dl
mov edx, 2
cmove edx, ebp
mov byte [esi + 5], al
and cl, 0xf0
or cl, dl
mov byte [esi + 4], cl
mov ebp, dword [esp + 0x28]
jmp 0x10003f7c
movzx eax, byte [esi + 5]
and al, 0xf0
or al, cl
xor al, 1
mov byte [esi + 5], al
movzx eax, al
and eax, 0xf
movzx eax, byte [eax + 0x100ca626]
movzx ecx, byte [esi + 0xd]
and al, 0xf
and cl, 0xf0
or cl, al
mov byte [esi + 0xd], cl
cmp byte [esi + 6], 0
jns 0x10003fb6
mov ecx, esi
call fcn.10005ee0
test eax, eax
js 0x10005d4a
mov ebx, dword [esi + 0x300]
mov ebp, dword [esp + 0x28]
test ebx, 0x40000
je 0x1000402d
test byte [esi + 0xa], 0x38
je 0x10003fe2
movzx ecx, byte [esi + 0x2fb]
and cl, 0xfc
movzx eax, byte [esi + 6]
and al, 0xf0
cmp cl, 4
jne 0x10004019
mov byte [esi + 6], al
and byte [esi + 5], 0xf
jmp 0x10004029
mov ecx, dword [esi + 0x24]
shr ecx, 0xc
and ecx, 3
cmp ecx, 2
je 0x10005e4c
cmp ecx, 1
je 0x10005e6c
mov ebp, 0x80000041
test ecx, ecx
jne 0x10005eac
and byte [esi + 5], 0xf
movzx eax, byte [esi + 6]
and al, 0xf0
jmp 0x10005e8b
or al, 2
mov byte [esi + 6], al
movzx eax, byte [esi + 5]
and al, 0xf
or al, 0x20
mov byte [esi + 5], al
mov ebp, dword [esp + 0x28]
test bl, 0x40
je 0x1000403b
movzx eax, byte [esi + 0x40]
and al, 0x1f
mov byte [esi + 0x4b], al
test bl, 0x20
je 0x1000404f
movzx eax, byte [esi + 0x342]
and al, 0xf
mov byte [esi + 0x4d], al
mov byte [esi + 0x4c], al
movzx eax, byte [ebp + 0xd]
and al, 0xf
mov byte [esi + 0x4f], al
movzx ecx, byte [ebp + 0xd]
shr cl, 4
add cl, al
mov byte [esi + 0x4e], cl
je 0x10005d51
mov ebx, ebp
xor ebp, ebp
jmp 0x1000407d
inc ebp
movzx eax, byte [esi + 0x4e]
cmp ebp, eax
jae 0x10005d51
mov ecx, dword [esi + 0x24]
mov dword [esp], 0
mov eax, 0
mov dword [esp + 0x10], ecx
test cl, 1
je 0x1000409f
test byte [esi + 0x301], 4
sete al
mov dword [esp + 0x30], eax
mov eax, ebx
mov ebx, dword [ebx + ebp*8 + 0x30]
mov ecx, dword [eax + ebp*8 + 0x34]
mov dword [esp + 0x24], ecx
movzx eax, byte [esi + 0xc]
mov dword [esp + 0x18], eax
mov ecx, ebx
shr ecx, 0x10
mov dword [esp + 0x34], ebp
shl ebp, 6
mov byte [esi + ebp + 0x69], cl
mov edx, ebx
shr edx, 8
mov dword [esp + 0x14], ebx
shr ebx, 0x18
mov dword [esp + 0xc], ebp
mov byte [esi + ebp + 0x68], bl
movzx ecx, dl
lea ebp, [ecx - 1]
cmp ebp, 0x3d
ja case.default.0x1000451a
mov dword [esp + 0x1c], ebx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
xor eax, eax
jmp dword [ebp*4 + 0x100ca870]
movzx ecx, byte [esi + 6]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca623]
jmp 0x100044d0
add dl, 0xd3
xor eax, eax
cmp ecx, 0x30
setne al
movzx ecx, dl
add ecx, 2
cmp dl, 3
lea edx, [eax + eax*2 + 5]
cmovb edx, ecx
movzx ecx, byte [esi + 5]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca626]
imul eax, edx
jmp 0x100044d0
mov eax, 2
jmp 0x100044d0
mov eax, 4
jmp 0x100044d0
mov edx, dword [esp + 0x10]
shr edx, 0xc
and edx, 3
cmp edx, 1
setne al
shl al, 3
add al, 8
test edx, edx
movzx edx, al
mov eax, 4
cmovne eax, edx
xor edx, edx
cmp ecx, 0x35
setne dl
shl edx, 5
add edx, 0x20
cmp ecx, 0x34
mov ecx, 0x10
cmovne ecx, edx
mov dword [esp], ecx
jmp 0x10004411
mov edx, dword [esp + 0x10]
shr edx, 0xc
and edx, 3
cmp edx, 1
setne al
shl al, 2
add al, 4
test edx, edx
movzx edx, al
mov eax, 2
cmovne eax, edx
xor edx, edx
cmp ecx, 0x3a
setne dl
shl edx, 5
add edx, 0x20
cmp ecx, 0x39
mov ecx, 0x10
cmovne ecx, edx
mov dword [esp], ecx
jmp 0x1000449c
mov eax, 0x40
jmp 0x100044d0
mov eax, 0xa
jmp 0x100044d0
mov eax, 0x200
jmp 0x100044d0
movzx ecx, byte [esi + 4]
jmp 0x1000420f
movzx ecx, byte [esi + 1]
and cl, 0xf
mov eax, 2
shl eax, cl
jmp 0x100044d0
test byte [esi], 0xe
jne case.default.0x1000451a
movzx ecx, byte [esi + 5]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca60e]
jmp 0x100044d0
movzx ecx, byte [esi]
and ecx, 0xf
cmp ecx, 2
je case.0x10004102.9
cmp ecx, 1
je 0x100044c1
test ecx, ecx
jne case.default.0x1000451a
movzx ecx, byte [esi + 7]
and cl, 2
cmp cl, 1
mov eax, 2
sbb eax, 0
jmp 0x100044d0
mov eax, 8
jmp 0x100044d0
mov eax, 1
jmp 0x100044d0
mov eax, 0x10
jmp 0x100044d0
mov eax, 0x20
jmp 0x100044d0
movzx ecx, byte [esi + 5]
jmp 0x1000433a
movzx ecx, byte [esi + 5]
jmp 0x100042a7
movzx ecx, byte [esi]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca608]
jmp 0x100044d0
movzx ecx, byte [esi + 5]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca60b]
jmp 0x100044d0
movzx ecx, byte [esi]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca614]
jmp 0x100044d0
movzx ecx, byte [esi + 5]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca611]
jmp 0x100044d0
test byte [esi + 5], 0xf
mov ecx, 0xe
mov eax, 0x1c
cmove eax, ecx
jmp 0x100044d0
test byte [esi + 5], 0xf
mov ecx, 0x5e
mov eax, 0x6c
cmove eax, ecx
jmp 0x100044d0
movzx ecx, byte [esi]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca617]
jmp 0x100044d0
mov eax, 0xfffffffe
jmp 0x100044d0
movzx ecx, byte [esi + 6]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca626]
jmp 0x100044d0
movzx ecx, byte [esi + 6]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca61d]
jmp 0x100044d0
movzx ecx, byte [esi + 6]
and ecx, 0xf
movzx eax, byte [ecx + 0x100ca620]
jmp 0x100044d0
movzx ecx, byte [esi + 6]
and ecx, 0xf
je case.default.0x1000451a
movzx eax, byte [ecx + 0x100ca61a]
jmp 0x100044d0
mov eax, 0x400
jmp 0x100044d0
mov eax, 0x30
jmp 0x100044d0
mov eax, 0xc
jmp 0x100044d0
mov ecx, dword [esp + 0x10]
shr ecx, 0xc
and ecx, 3
cmp ecx, 1
setne dl
shl dl, 2
add dl, 4
test ecx, ecx
movzx edx, dl
mov eax, 2
cmovne eax, edx
xor edx, edx
cmp ecx, 2
setae dl
shl edx, 4
add edx, 0x10
jmp 0x1000440e
mov ebp, dword [esp + 0x10]
shr ebp, 0xc
and ebp, 3
xor ecx, ecx
cmp ebp, 1
setne cl
mov edx, ecx
shl dl, 3
add dl, 8
shl ecx, 5
add ecx, 0x20
test ebp, ebp
movzx edx, dl
mov eax, 4
cmovne eax, edx
mov edx, 0x10
cmovne edx, ecx
mov dword [esp], edx
mov dword [esp + 8], eax
movzx ecx, al
movzx edx, byte [esp + 0x30]
lea eax, [edx*4 + 4]
imul eax, ecx
mov cl, 4
mov dword [esp + 4], ecx
jmp case.0x10004102.1
mov ecx, dword [esp + 0x10]
shr ecx, 0xc
and ecx, 3
cmp ecx, 1
setne dl
add dl, dl
add dl, 2
test ecx, ecx
movzx edx, dl
mov eax, 1
cmovne eax, edx
xor edx, edx
cmp ecx, 2
setae dl
shl edx, 4
add edx, 0x10
jmp 0x10004499
mov ebp, dword [esp + 0x10]
shr ebp, 0xc
and ebp, 3
xor ecx, ecx
cmp ebp, 1
setne cl
mov edx, ecx
shl dl, 2
add dl, 4
shl ecx, 5
add ecx, 0x20
test ebp, ebp
movzx edx, dl
mov eax, 2
cmovne eax, edx
mov edx, 0x10
cmovne edx, ecx
mov dword [esp], edx
mov dword [esp + 8], eax
movzx ecx, al
movzx edx, byte [esp + 0x30]
lea eax, [edx*4 + 4]
imul eax, ecx
mov cl, 8
mov dword [esp + 4], ecx
jmp case.0x10004102.1
mov eax, 0xffffffff
jmp 0x100044d0
xor ecx, ecx
test byte [esi + 7], 2
sete cl
lea eax, [ecx + ecx]
add eax, 2
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov edx, dword [esp + 0xc]
mov dword [esi + edx + 0x64], eax
mov dword [esi + edx + 0x60], eax
mov ebx, dword [esp + 0x14]
cmp bl, 0x67
ja case.default.0x1000451a
mov ecx, eax
lea ebp, [esi + edx]
add ebp, 0x58
movzx eax, bl
mov dword [esp + 0x2c], eax
movzx eax, bl
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], ebp
jmp dword [eax*4 + 0x100ca968]
mov dword [ebp], 1
movsd xmm0, qword [0x100587b0]
movsd qword [esi + edx + 0x70], xmm0
mov eax, dword [esp + 0x2c]
add eax, 0xffffffc1
mov dword [esi + edx + 0x78], eax
jmp 0x10005bf7
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2db], al
mov dword [ebp], 2
lea ebx, [esi + edx]
add ebx, 0x70
movzx ecx, byte [esi + 4]
and cl, 0xf
mov eax, 2
shl eax, cl
mov dword [esi + edx + 0x74], eax
or byte [esi + edx + 0x70], 3
mov ebp, dword [esp + 0x2c]
cmp ebp, 0x17
sete al
xor al, 7
mov byte [esi + edx + 0x83], al
lea eax, [ebp - 0x17]
cmp eax, 2
setb al
movzx ecx, byte [esi + edx + 0x71]
and cl, 0xfe
or cl, al
mov byte [esi + edx + 0x71], cl
cmp ebp, 0x18
jne 0x100045ac
mov byte [ebx + 0x12], 0
jmp 0x10005bf7
mov ecx, esi
mov edx, 3
call fcn.10006b00
mov byte [ebx + 0x12], al
jmp 0x10005bf7
movzx eax, cl
mov ecx, esi
mov edx, edi
push eax
push dword [esp + 0x5c]
push dword [esp + 0x20]
call fcn.10006830
add esp, 0xc
test eax, eax
js 0x10005d4a
mov eax, dword [esp + 0x14]
mov dword [eax], 5
movzx eax, word [esi + 0x2c]
mov ecx, dword [esp + 0xc]
mov word [esi + ecx + 0x70], ax
mov eax, dword [esi + 0x28]
mov dword [esi + ecx + 0x78], eax
mov dword [esi + ecx + 0x7c], 0
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
mov dword [esi + edx + 0x74], ecx
test dword [esp + 0x10], 0x40000
jne 0x10005eb6
mov eax, dword [esp + 0xc]
add eax, esi
add eax, 0x70
mov ecx, dword [esp + 0x10]
shr ecx, 0xe
and ecx, 0xf
mov dword [eax + 8], ecx
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 6
mov dword [esi + edx + 0x74], ecx
movzx eax, byte [esi + 0x1d]
shr eax, 3
and eax, 7
mov ecx, dword [esp + 0x10]
and ecx, 2
lea ecx, [eax + ecx*4]
mov dword [esi + edx + 0x78], ecx
movzx eax, byte [esi]
and al, 0xf
cmp al, 2
je 0x10004690
test byte [esi + 7], 8
je 0x10004690
mov eax, dword [esp + 0xc]
add eax, esi
add eax, 0x70
or ecx, 8
mov dword [eax + 8], ecx
mov ebp, 0x80000005
cmp ecx, 8
ja 0x10005eac
mov eax, 0x11d
bt eax, ecx
jb 0x10005bf7
jmp 0x10005eac
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 7
jmp 0x10004b40
movzx edx, byte [esi + 0x1d]
cmp dl, 0xc0
jb 0x10004de7
mov eax, dword [esp + 0x14]
mov dword [eax], 1
mov ecx, dword [esp + 0xc]
mov dword [esi + ecx + 0x70], 1
mov ebx, dword [esp + 0x20]
mov dword [esi + ecx + 0x74], ebx
and dl, 7
mov eax, dword [esp + 0x10]
and al, 8
or al, dl
mov edx, eax
movzx eax, al
mov dword [esi + ecx + 0x78], eax
xor eax, eax
cmp ebx, 1
jne 0x10005885
cmp dl, 4
jae 0x10004cc8
jmp 0x10005885
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0x13
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 0
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2e0], al
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
mov dword [esi + edx + 0x74], ecx
test byte [esp + 0x10], 0x10
jne 0x10005eb6
mov eax, dword [esp + 0xc]
add eax, esi
add eax, 0x70
movzx ecx, byte [esi + 0x1d]
shr ecx, 3
and ecx, 7
mov edx, dword [esp + 0x10]
and edx, 2
lea edx, [ecx + edx*4]
mov dword [eax + 8], edx
xor ecx, ecx
cmp dword [esp + 0x20], 1
jne 0x10005965
cmp dl, 4
jb 0x10005965
test byte [esi + 3], 0xf
je 0x1000595e
xor ecx, ecx
jmp 0x10005965
test byte [esi + 3], 0xf
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x34]
je 0x10004070
mov eax, dword [esp + 0x14]
mov dword [eax], 1
mov dword [esi + edx + 0x70], 5
mov ecx, dword [esp + 0x20]
cmp ecx, 0x11
mov eax, 0x10
cmovae eax, ecx
mov dword [esi + edx + 0x74], eax
mov eax, dword [esp + 0x10]
shr eax, 0xe
and eax, 0x1f
mov dword [esi + edx + 0x78], eax
jmp 0x10005bf7
movzx eax, cl
mov ecx, esi
mov edx, edi
push eax
push dword [esp + 0x5c]
push dword [esp + 0x20]
call fcn.100068c0
add esp, 0xc
test eax, eax
js 0x10005d4a
movzx eax, byte [esi + 9]
test al, 0x10
jne 0x10005878
test al, 8
jne 0x100058bb
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x100058c1
movzx eax, cl
mov ecx, esi
mov edx, edi
push eax
push dword [esp + 0x5c]
push dword [esp + 0x20]
call fcn.100069d0
add esp, 0xc
test eax, eax
js 0x10005d4a
or byte [esi + 8], 4
mov ecx, dword [esp + 0x14]
mov dword [ecx], 4
movzx eax, byte [esi + 0xd]
and eax, 0xf
mov dword [ecx + 8], eax
cmp dword [esp + 0x20], 4
je 0x1000592f
cmp dword [esp + 0x20], 2
je 0x1000593c
cmp dword [esp + 0x20], 1
jne 0x10005954
mov eax, dword [esi + 0x3c]
test al, 0x80
jne 0x10005bda
movzx eax, al
xor ecx, ecx
jmp 0x10005beb
mov ebx, dword [esp + 0x1c]
or byte [esi + 0x2db], bl
mov dword [ebp], 2
mov byte [esi + edx + 0x83], 4
movzx eax, byte [esi + 1]
and eax, 0xf
movzx eax, byte [eax + 0x100ca626]
mov dword [esi + edx + 0x74], eax
or byte [esi + edx + 0x70], 0x83
mov byte [esi + edx + 0x82], 2
mov eax, ecx
movzx ecx, byte [esi + 0xd]
and ecx, 0xf
xor edx, edx
div ecx
mov byte [esi + 0x18], al
or byte [esi + 0x2da], bl
jmp 0x10005bf7
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x58]
jae 0x10005d36
or byte [esi + 9], 0x40
movzx eax, byte [esi + 0x16]
mov edx, dword [esp + 0x18]
mov ecx, edx
shl cl, 4
and al, 0xf
or al, cl
mov byte [esi + 0x16], al
movzx eax, byte [esi + edx + 0x343]
mov byte [esi + 0x4a], al
inc dl
mov byte [esi + 0xc], dl
cmp dl, 0xf
ja 0x10003c92
mov ecx, dword [esp + 0x14]
mov dword [ecx], 1
mov edx, dword [esp + 0xc]
mov dword [esi + edx + 0x70], 5
mov ebx, dword [esp + 0x20]
cmp ebx, 0x11
mov ecx, 0x10
cmovae ecx, ebx
mov dword [esi + edx + 0x74], ecx
shr eax, 4
mov dword [esi + edx + 0x78], eax
movzx ecx, byte [esi]
and cl, 0xf
cmp cl, 2
je 0x10005bf7
mov ecx, dword [esp + 0xc]
add ecx, esi
add ecx, 0x70
and eax, 7
mov dword [ecx + 8], eax
jmp 0x10005bf7
movzx edx, byte [esi + 0x1d]
cmp dl, 0xbf
jbe 0x10004de7
jmp 0x10005ea7
movzx eax, byte [esi + 0x1d]
cmp eax, 0xc0
jb 0x10005ea7
mov ecx, dword [esp + 0x14]
mov dword [ecx], 1
movsd xmm0, qword [0x10058720]
mov ecx, dword [esp + 0xc]
movsd qword [esi + ecx + 0x70], xmm0
and eax, 7
mov dword [esi + ecx + 0x78], eax
jmp 0x10005bf7
movzx ecx, byte [esi + 4]
and cl, 0xf
mov eax, 2
shl eax, cl
movzx eax, al
mov ecx, esi
mov edx, edi
push eax
push dword [esp + 0x5c]
push dword [esp + 0x20]
call fcn.10006a60
add esp, 0xc
test eax, eax
js 0x10005d4a
mov ebx, dword [esp + 0xc]
lea eax, [esi + ebx]
add eax, 0x68
movzx eax, byte [eax]
or byte [esi + 0x2db], al
mov eax, dword [esp + 0x14]
mov dword [eax], 2
or byte [esi + ebx + 0x71], 4
movzx eax, byte [esi + 0xf]
shr al, 4
mov byte [esi + ebx + 0x7c], al
movsd xmm0, qword [esi + 0x30]
movsd qword [esi + ebx + 0x88], xmm0
or byte [esi + ebx + 0x70], 9
mov ecx, esi
jmp 0x10005374
mov dword [ebp], 1
movsd xmm0, qword [0x10058720]
movsd qword [esi + edx + 0x70], xmm0
movzx eax, byte [esi + 0x1d]
shr eax, 3
jmp 0x100052c3
movzx edx, byte [esi + 0x1d]
cmp edx, 0xc0
jb 0x10004de7
mov eax, dword [esp + 0x14]
mov dword [eax], 1
movsd xmm0, qword [0x10058720]
jmp 0x10004dd1
movzx eax, byte [esi + 0x1d]
cmp al, 0xbf
ja 0x10004aa3
test byte [esi + 0x302], 2
je 0x10005ea7
mov ecx, dword [esp + 0x14]
mov dword [ecx], 1
mov ecx, dword [esp + 0xc]
mov dword [esi + ecx + 0x70], 1
mov edx, dword [esp + 0x20]
mov dword [esi + ecx + 0x74], edx
and al, 7
mov ebx, dword [esp + 0x10]
and bl, 8
or bl, al
movzx eax, bl
mov dword [esi + ecx + 0x78], eax
xor eax, eax
cmp edx, 1
jne 0x10005885
mov ebp, ebx
mov ecx, ebx
cmp cl, 4
jae 0x10004cc8
jmp 0x10005885
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 2
mov dword [esi + edx + 0x74], ecx
movzx eax, byte [esi + 0x1d]
shr eax, 3
and eax, 7
mov dword [esi + edx + 0x78], eax
cmp al, 5
ja 0x10005eb6
test byte [esp + 0x1c], 2
je 0x10005bf7
cmp al, 1
jne 0x10005bf7
jmp 0x10005ed2
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 8
mov dword [esi + edx + 0x74], ecx
movzx eax, byte [esi + 0x1d]
shr eax, 3
and eax, 7
mov ecx, dword [esp + 0x10]
and ecx, 2
lea eax, [eax + ecx*4]
mov dword [esi + edx + 0x78], eax
cmp al, 7
jbe 0x10005bf7
jmp 0x10005eb6
movzx eax, byte [esi + 0x1d]
cmp al, 0xc0
jb 0x10005ea7
mov ecx, dword [esp + 0x14]
mov dword [ecx], 1
mov edx, dword [esp + 0xc]
mov dword [esi + edx + 0x70], 5
mov ebx, dword [esp + 0x20]
cmp ebx, 0x11
mov ecx, 0x10
cmovae ecx, ebx
mov dword [esi + edx + 0x74], ecx
and al, 7
mov ecx, dword [esp + 0x10]
and cl, 8
or cl, al
movzx eax, cl
mov dword [esi + edx + 0x78], eax
jmp 0x10004c5d
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 5
cmp ecx, 0x11
mov eax, 0x10
cmovae eax, ecx
mov dword [esi + edx + 0x74], eax
movzx eax, byte [esi + 0x1d]
shr eax, 3
and eax, 7
mov ecx, dword [esp + 0x10]
and ecx, 2
lea eax, [eax + ecx*4]
mov dword [esi + edx + 0x78], eax
cmp byte [esi + 6], 0
js 0x10004bfb
test byte [esi + 7], 1
je 0x10005bf7
mov ecx, dword [esp + 0xc]
add ecx, esi
add ecx, 0x70
mov edx, dword [esp + 0x10]
and edx, 0x10
or edx, eax
mov dword [ecx + 8], edx
jmp 0x10005bf7
movzx edx, byte [esi + 0x1d]
cmp dl, 0xc0
jb 0x10004de7
mov eax, dword [esp + 0x14]
mov dword [eax], 1
mov ecx, dword [esp + 0xc]
mov dword [esi + ecx + 0x70], 5
mov ebx, dword [esp + 0x20]
cmp ebx, 0x11
mov eax, 0x10
cmovae eax, ebx
mov dword [esi + ecx + 0x74], eax
and dl, 7
mov eax, dword [esp + 0x10]
and al, 8
or al, dl
movzx eax, al
mov dword [esi + ecx + 0x78], eax
cmp byte [esi + 6], 0
js 0x10004c6d
test byte [esi + 7], 1
je 0x10005bf7
mov ecx, dword [esp + 0xc]
add ecx, esi
add ecx, 0x70
mov edx, dword [esp + 0x10]
and edx, 4
lea eax, [eax + edx*4]
mov dword [ecx + 8], eax
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
mov dword [esi + edx + 0x74], ecx
movzx eax, byte [esi + 0x342]
and eax, 7
mov ebp, dword [esp + 0x10]
and ebp, 8
or ebp, eax
mov dword [esi + edx + 0x78], ebp
xor eax, eax
cmp ecx, 1
jne 0x10005885
mov ebx, ebp
cmp bl, 4
jb 0x10005885
test byte [esi + 3], 0xf
je 0x1000587e
xor eax, eax
jmp 0x10005885
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 9
mov dword [esi + edx + 0x74], ecx
movzx eax, byte [esi + 0x1d]
shr eax, 3
and eax, 7
mov ecx, dword [esp + 0x10]
and ecx, 2
lea eax, [eax + ecx*4]
mov dword [esi + edx + 0x78], eax
cmp al, 3
jbe 0x10005bf7
jmp 0x10005eb6
movzx edx, byte [esi + 0x1d]
cmp dl, 0xc0
jb 0x10004de7
mov eax, dword [esp + 0x14]
mov dword [eax], 1
mov ecx, dword [esp + 0xc]
mov dword [esi + ecx + 0x70], 9
mov eax, dword [esp + 0x20]
mov dword [esi + ecx + 0x74], eax
and dl, 7
mov ebx, dword [esp + 0x10]
and bl, 8
or bl, dl
movzx eax, bl
mov dword [esi + ecx + 0x78], eax
cmp bl, 3
jbe 0x10005bf7
jmp 0x10005eb6
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0xa
test byte [esp + 0x10], 0x12
jne 0x10005eb6
mov eax, dword [esp + 0xc]
add eax, esi
add eax, 0x70
mov dword [eax + 4], 8
movzx ecx, byte [esi + 0x1d]
shr ecx, 3
and ecx, 7
mov dword [eax + 8], ecx
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058710]
movsd qword [esi + edx + 0x70], xmm0
jmp 0x10004ff7
movzx edx, byte [esi + 0x1d]
cmp edx, 0xc0
jb 0x10004de7
mov eax, dword [esp + 0x14]
mov dword [eax], 1
movsd xmm0, qword [0x10058710]
mov eax, dword [esp + 0xc]
movsd qword [esi + eax + 0x70], xmm0
and edx, 7
mov dword [esi + eax + 0x78], edx
jmp 0x10005bf7
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2db], al
mov eax, dword [esp + 0x14]
mov dword [eax], 2
mov eax, dword [esp + 0xc]
lea ebp, [esi + eax]
add ebp, 0x70
mov bh, byte [esi + eax + 0x70]
mov cl, bh
or cl, 1
mov ch, cl
mov byte [esi + eax + 0x70], cl
movzx eax, byte [esi + 4]
and al, 0xf
je 0x10004e92
cmp al, 1
setne bl
shl bl, 2
add bl, 4
mov byte [ebp + 0x12], 3
movzx eax, byte [esi + 8]
mov byte [esp + 0x1c], al
test al, 0x20
jne 0x10004ebf
mov eax, edx
and al, 0xc7
cmp al, 5
jne 0x1000579b
movzx eax, byte [esi]
and al, 0xf
cmp al, 2
sete cl
mov edx, ecx
shl dl, 2
mov ah, byte [esp + 0x1c]
and ah, 0xfb
or ah, dl
shl cl, 6
mov bh, ch
and bh, 0xbf
or bh, cl
mov byte [esp + 0x1c], ah
mov byte [esi + 8], ah
mov byte [ebp], bh
mov byte [esp + 0x18], 3
cmp al, 2
jne 0x1000585e
test byte [esi + 0x303], 2
je 0x1000585e
jmp 0x10005ed9
test byte [esi + 0x302], 1
jne 0x10005ecb
mov eax, edx
and al, 7
movzx eax, al
jmp dword [eax*4 + 0x100cab08]
movzx eax, byte [esi + 0x1e]
mov dword [esp + 0x38], eax
and al, 7
mov byte [esp + 0x18], 3
cmp dl, 0x3f
ja 0x100057cf
cmp al, 5
jne 0x100057cf
mov bh, ch
jmp 0x100057f5
mov dword [ebp], 1
movsd xmm0, qword [0x10058710]
movsd qword [esi + edx + 0x70], xmm0
mov eax, dword [esp + 0x10]
shr eax, 0x16
jmp 0x100052c3
mov dword [ebp], 2
movzx eax, byte [esi + 0x1d]
shr al, 3
and al, 7
mov ecx, dword [esp + 0x10]
shl cl, 2
and cl, 8
or cl, al
mov byte [esi + edx + 0x83], cl
movzx ecx, byte [esi + 4]
and cl, 0xf
mov eax, 2
shl eax, cl
mov dword [esi + edx + 0x74], eax
or byte [esi + edx + 0x70], 3
mov byte [esi + edx + 0x82], 0
jmp 0x10005bf7
mov dword [ebp], 2
mov ecx, dword [esp + 0x10]
shr ecx, 4
movzx eax, byte [esi + 0x1d]
and al, 7
and cl, 0xf8
or cl, al
mov byte [esi + edx + 0x83], cl
movzx ecx, byte [esi + 4]
and cl, 0xf
mov eax, 2
shl eax, cl
mov dword [esi + edx + 0x74], eax
jmp 0x10005327
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0xb
mov dword [esi + edx + 0x74], ecx
movzx eax, byte [esi + 0x1d]
shr eax, 3
and eax, 7
mov dword [esi + edx + 0x78], eax
test byte [esp + 0x10], 2
je 0x10005bf7
jmp 0x10005eb6
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0xb
mov dword [esi + edx + 0x74], ecx
movzx eax, byte [esi + 0x1d]
and eax, 7
mov dword [esi + edx + 0x78], eax
test byte [esp + 0x10], 8
je 0x10005bf7
jmp 0x10005eb6
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0xb
mov dword [esi + edx + 0x74], ecx
mov eax, dword [esp + 0x10]
shr eax, 0xe
and eax, 0xf
mov dword [esi + edx + 0x78], eax
cmp eax, 7
jbe 0x10005bf7
jmp 0x10005eb6
mov dword [ebp], 6
mov dword [esi + edx + 0x74], 0
mov dword [esi + edx + 0x70], 1
mov eax, 6
jmp 0x100058ae
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0x14
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 0
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2d9], al
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058790]
jmp 0x1000572e
mov dword [ebp], 1
movsd xmm0, qword [0x10058780]
jmp 0x1000572e
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0x12
jmp 0x100054bc
mov dword [ebp], 1
movsd xmm0, qword [0x10058770]
jmp 0x1000572e
mov dword [ebp], 1
movsd xmm0, qword [0x100587d0]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 4
or byte [esi + edx + 0x80], 1
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
jmp 0x100054bc
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
jmp 0x1000549c
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
jmp 0x100054dc
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
jmp 0x100054fc
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
jmp 0x10005265
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
jmp 0x10005285
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 6
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 7
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 8
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 9
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 1
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 0xb
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 2
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 1
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2d8], al
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 2
jmp 0x100054dc
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 2
jmp 0x100054fc
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 2
jmp 0x100054bc
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 2
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 4
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 2
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 5
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x100587c0]
jmp 0x1000572e
mov dword [ebp], 1
movsd xmm0, qword [0x100587c0]
movsd qword [esi + edx + 0x70], xmm0
movzx eax, byte [esi + 0x1d]
and eax, 7
mov dword [esi + edx + 0x78], eax
jmp 0x10005bf7
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2db], al
mov dword [ebp], 2
movzx ecx, byte [esi + 4]
and cl, 0xf
mov eax, 2
shl eax, cl
mov dword [esi + edx + 0x74], eax
mov byte [esi + edx + 0x83], 0
jmp 0x10005327
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2db], al
mov dword [ebp], 2
movzx ecx, byte [esi + 4]
and cl, 0xf
mov eax, 2
shl eax, cl
mov dword [esi + edx + 0x74], eax
mov byte [esi + edx + 0x83], 1
or byte [esi + edx + 0x70], 3
jmp 0x10005370
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2db], al
mov dword [ebp], 2
movzx ecx, byte [esi + 4]
and cl, 0xf
mov eax, 2
shl eax, cl
mov dword [esi + edx + 0x74], eax
mov dword [esi + edx + 0x78], 1
mov word [esi + edx + 0x83], 3
mov byte [esi + edx + 0x85], 1
or byte [esi + edx + 0x70], 7
mov ecx, esi
mov ebx, edx
mov edx, 3
call fcn.10006b00
mov byte [esi + ebx + 0x82], al
jmp 0x10005bf7
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2db], al
mov dword [ebp], 2
or byte [esi + edx + 0x71], 2
mov byte [esi + edx + 0x7e], 2
jmp 0x10005bf7
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2db], al
mov dword [ebp], 2
or byte [esi + edx + 0x71], 2
mov byte [esi + edx + 0x7e], 3
jmp 0x10005bf7
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2db], al
mov dword [ebp], 2
or byte [esi + edx + 0x71], 2
mov byte [esi + edx + 0x7e], 4
jmp 0x10005bf7
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2db], al
mov dword [ebp], 2
movzx eax, byte [esi + edx + 0x70]
movzx ecx, byte [esi + 4]
and cl, 0xf
mov ebx, edx
mov edx, 2
shl edx, cl
mov dword [esi + ebx + 0x74], edx
mov byte [esi + ebx + 0x83], 6
jmp 0x10005450
mov eax, dword [esp + 0x1c]
or byte [esi + 0x2db], al
mov dword [ebp], 2
movzx eax, byte [esi + edx + 0x70]
movzx ecx, byte [esi + 4]
and cl, 0xf
mov ebx, edx
mov edx, 2
shl edx, cl
mov dword [esi + ebx + 0x74], edx
mov byte [esi + ebx + 0x83], 7
and al, 0xfc
or al, 2
mov byte [esi + ebx + 0x70], al
jmp 0x10005bf7
mov dword [ebp], 3
movzx eax, byte [esi + 0x4a]
and eax, 3
mov dword [esi + edx + 0x70], eax
mov dword [esi + edx + 0x74], 0
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 6
jmp 0x100054bc
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0xe
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 1
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0xe
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 0
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0xe
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 2
jmp 0x10005bf7
mov dword [ebp], 1
mov dword [esi + edx + 0x70], 0xe
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x78], 3
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x100587a0]
jmp 0x1000572e
mov dword [ebp], 1
movsd xmm0, qword [0x100587a0]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 1
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x100587a0]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 2
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0xffffffff
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058750]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0xff
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0x10
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0xc0000103
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0x176
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0x175
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0x174
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0xc0000081
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0xc0000082
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0xc0000084
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0xc0000100
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0xc0000101
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058760]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0xc0000102
jmp 0x10005bf7
mov dword [ebp], 1
movsd xmm0, qword [0x10058750]
movsd qword [esi + edx + 0x70], xmm0
mov dword [esi + edx + 0x78], 0
jmp 0x10005bf7
mov eax, dword [esi + 0x304]
cmp eax, 0x25a
je 0x10005759
cmp eax, 0x222
jne 0x1000589f
mov ecx, dword [esp + 0x14]
mov dword [ecx], 1
movzx eax, byte [esi + 0xd]
and eax, 0xf
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0xc]
mov dword [esi + ecx + 0x70], 1
mov dword [esi + ecx + 0x74], eax
movsd xmm0, qword [0x10058740]
movsd qword [esi + ecx + 0x78], xmm0
or byte [esi + ecx + 0x80], 2
jmp 0x10005bf7
and dl, 7
or bh, 3
movzx eax, bl
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x10]
and al, 8
or al, dl
mov byte [ebp + 0x13], al
and al, 0xe
mov byte [esp + 0x18], 3
cmp al, 4
jne 0x1000585e
mov byte [ebp + 0x12], 2
mov byte [esp + 0x18], 2
jmp 0x1000585e
or bh, 3
movzx ecx, bl
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 0x10]
and cl, 8
or cl, al
mov byte [ebp + 0x13], cl
and cl, 0xe
cmp cl, 4
jne 0x100057f5
mov byte [ebp + 0x12], 2
mov byte [esp + 0x18], 2
mov eax, dword [esp + 0x10]
and eax, 4
mov ecx, dword [esp + 0x38]
shr ecx, 3
and ecx, 7
lea eax, [ecx + eax*2]
mov edx, dword [esi + 0x300]
cmp eax, 4
jne 0x1000581d
mov eax, edx
and eax, 0x80
je 0x1000585e
or bh, 4
mov eax, dword [esp + 0x10]
add al, al
and al, 8
or al, cl
mov byte [ebp], bh
movzx ecx, bl
mov dword [ebp + 8], ecx
mov byte [ebp + 0x14], al
test dl, 0x80
je 0x10005850
mov ecx, dword [esp]
mov dword [ebp + 8], ecx
mov ecx, dword [esp + 0x10]
shr ecx, 0xe
and cl, 0x10
or al, cl
mov byte [ebp + 0x14], al
mov ecx, dword [esp + 0x38]
shr cl, 6
mov al, 1
shl al, cl
mov byte [ebp + 0x15], al
movzx eax, byte [esp + 0x1c]
shr al, 4
and al, 8
and bh, 0xf7
or bh, al
mov byte [esp], bh
mov byte [ebp], bh
jmp 0x10005a52
movzx eax, byte [esi + 0x49]
jmp 0x100058bf
test byte [esi + 6], 0x10
sete al
mov ecx, dword [esp + 0xc]
add ecx, esi
add ecx, 0x70
movzx edx, byte [ecx + 0x10]
and dl, 0xfe
or dl, al
mov byte [ecx + 0x10], dl
jmp 0x10005bf7
mov eax, dword [esp + 0x14]
mov dword [eax], 7
mov eax, 7
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x34]
jmp 0x10005c41
movzx eax, byte [esi + 0x48]
xor ecx, ecx
mov edx, dword [esp + 0xc]
add edx, esi
add edx, 0x69
mov ebx, dword [esp + 0x14]
mov dword [ebx], 3
movzx edx, byte [edx]
test dl, 4
jne 0x100058ea
test dl, 2
je 0x10005beb
mov edx, dword [esi + 0x60]
jmp 0x100058f8
movzx edx, byte [esi + 5]
and edx, 0xf
movzx edx, byte [edx + 0x100ca626]
mov ebx, dword [esp + 0x14]
mov dword [ebx + 8], edx
cmp dword [esp + 0x20], 4
je 0x10005932
cmp dword [esp + 0x20], 2
je 0x10005976
cmp dword [esp + 0x20], 1
jne 0x10005beb
movzx edx, al
movsx eax, al
mov ecx, eax
sar ecx, 0x1f
and eax, 0xffffff00
or eax, edx
jmp 0x10005beb
mov eax, dword [esi + 0x3c]
mov ecx, eax
sar ecx, 0x1f
jmp 0x10005beb
mov eax, dword [esi + 0x3c]
test eax, 0x8000
jne 0x10005be1
movzx eax, ax
xor ecx, ecx
jmp 0x10005beb
mov eax, dword [esi + 0x3c]
xor ecx, ecx
jmp 0x10005beb
test byte [esi + 6], 0x10
sete cl
movzx edx, byte [eax + 0x10]
and dl, 0xfe
or dl, cl
mov byte [eax + 0x10], dl
jmp 0x10005bf7
cwde
mov ecx, eax
sar ecx, 0x1f
movzx edx, ax
and eax, 0xffff0000
or eax, edx
jmp 0x10005beb
movzx eax, byte [esi + 0xe]
shr eax, 4
mov byte [ebp + 0xc], al
cmp eax, 4
je 0x10005a79
cmp eax, 2
je 0x10005a83
cmp eax, 1
jne 0x10005a94
mov eax, dword [esi + 0x38]
test al, 0x80
jne 0x10005a9b
movzx eax, al
xor ecx, ecx
jmp 0x10005aac
mov eax, dword [esi + 0x38]
mov ecx, eax
sar ecx, 0x1f
jmp 0x10005aac
mov eax, dword [esi + 0x38]
test eax, 0x8000
jne 0x10005aa2
movzx eax, ax
xor ecx, ecx
jmp 0x10005aac
mov eax, dword [esi + 0x38]
xor ecx, ecx
jmp 0x10005aac
or eax, 0xffffff00
jmp 0x10005aa7
or eax, 0xffff0000
mov ecx, 0xffffffff
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], ecx
test byte [esi + 7], 0x40
je 0x10005ac7
movzx edx, byte [esp + 0x18]
mov ecx, esi
call fcn.10006b00
mov byte [ebp + 0x12], al
mov ebx, dword [esi + 0x300]
test bl, 0x80
je 0x10005b03
test byte [esp + 0x1c], 0x20
je 0x10005ebd
or byte [ebp + 1], 0x40
mov eax, dword [esp + 4]
mov byte [ebp + 0xf], al
mov eax, dword [esp + 8]
mov byte [ebp + 0x11], al
movzx ecx, al
mov eax, dword [esp + 0x20]
xor edx, edx
div ecx
mov byte [ebp + 0x10], al
mov ebx, dword [esi + 0x300]
test ebx, 0x8000000
je 0x10005b1a
test byte [esp + 0x1c], 0x20
je 0x10005ec4
or byte [ebp + 1], 0x80
test byte [esi + 0xa], 1
jne 0x10005b26
mov edx, dword [esp + 0x20]
jmp 0x10005b6d
movzx eax, byte [esp]
or al, 0x20
mov byte [esp], al
mov byte [ebp], al
mov edx, 4
test byte [esp + 0x24], 4
jne 0x10005b63
mov edx, 8
test byte [esp + 0x24], 8
jne 0x10005b63
test byte [esp + 0x24], 0x40
movzx eax, byte [esp + 0x30]
lea eax, [eax*4 + 4]
mov edx, 2
cmove edx, eax
mov eax, dword [esp + 0x14]
mov dword [eax + 0xc], edx
mov dword [eax + 8], edx
cmp byte [esi + 9], 0
jns 0x10005b89
movzx eax, byte [esp]
or al, 0x10
mov byte [esp], al
mov byte [ebp], al
mov ecx, esi
call fcn.10006b50
mov byte [ebp + 0xd], al
movzx ecx, byte [ebp + 1]
mov edx, ebx
shr edx, 3
and dl, 0x20
and cl, 0xd7
mov eax, ebx
shr eax, 0x11
and al, 8
or al, dl
or al, cl
mov byte [ebp + 1], al
test ebx, 0x200000
je 0x10005bc7
or al, 0x10
mov byte [ebp + 1], al
movzx ecx, byte [esp]
and cl, 0xfe
mov byte [ebp], cl
mov byte [ebp + 0x12], 0
mov ebx, dword [esi + 0x300]
test ebx, 0x400000
je 0x10005bf7
or al, 2
mov byte [ebp + 1], al
mov byte [ebp + 0xe], 1
jmp 0x10005bf7
or eax, 0xffffff00
jmp 0x10005be6
or eax, 0xffff0000
mov ecx, 0xffffffff
mov edx, dword [esp + 0xc]
mov dword [esi + edx + 0x74], ecx
mov dword [esi + edx + 0x70], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp eax, 1
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x34]
jne 0x10005c41
mov eax, dword [esp + 0x24]
shr eax, 8
and eax, 0xff
je 0x10005c30
mov ecx, dword [esp + 0xc]
mov dword [esi + ecx + 0x7c], eax
neg eax
and dword [esi + ecx + 0x78], eax
or byte [esi + ecx + 0x80], 2
jmp 0x10005c3c
mov eax, dword [esp + 0xc]
mov dword [esi + eax + 0x7c], 1
mov eax, 1
mov ecx, dword [esp + 0x2c]
movzx ecx, word [ecx + ecx + 0x100ca62a]
mov edx, 1
shl edx, cl
or word [esi + 0x50], dx
mov edx, dword [esp + 0xc]
mov dword [esi + edx + 0x5c], ecx
mov ecx, dword [esp + 0x24]
test cl, cl
je 0x10004070
test cl, 1
je 0x10005c93
test byte [esi + 0xa], 2
je 0x10005c93
or byte [esi + edx + 0x90], 1
mov ecx, dword [esi + 0x24]
shr ecx, 0x16
and cl, 7
mov byte [esi + edx + 0x91], cl
mov ecx, dword [esp + 0x24]
test cl, 2
je 0x10005caf
test byte [esi + 0xa], 4
je 0x10005caf
cmp eax, 2
je 0x10005e45
or byte [esi + edx + 0x90], 2
test cl, 0x4c
je 0x10005ce7
test byte [esi + 0xa], 1
je 0x10005ce7
or byte [esi + edx + 0x90], 4
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
mov byte [esi + edx + 0x93], cl
mov eax, dword [esp + 0x20]
xor edx, edx
div ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
mov byte [esi + edx + 0x92], al
test cl, 0x10
je 0x10005d0c
movzx eax, byte [esi + 0xa]
movzx ecx, byte [esi + edx + 0x90]
shr al, 1
and al, 8
and cl, 0xf7
or cl, al
mov byte [esi + edx + 0x90], cl
mov ecx, dword [esp + 0x24]
test cl, 0x20
je 0x10004070
movzx eax, byte [esi + 0xa]
movzx ecx, byte [esi + edx + 0x90]
add al, al
and al, 0x10
and cl, 0xef
or cl, al
mov byte [esi + edx + 0x90], cl
jmp 0x10004070
mov ebp, 0x80000001
jmp 0x10005eac
mov ebp, 0x80000101
jmp 0x10005eac
mov ebp, eax
jmp 0x10005eac
movzx eax, byte [esi + 7]
movzx edx, byte [esi + 0x19]
test dl, dl
je 0x10005da9
test al, 8
jne 0x10005d70
movzx ecx, word [esi + 0x31c]
test ecx, 0x100
je 0x10005d98
cmp dword [esi + 0x58], 2
movzx ecx, word [esi + 0x31c]
jne 0x10005d98
test cl, 0x18
je 0x10005d89
mov ah, 1
cmp dl, 0xf2
je 0x10005d95
test cl, 0x28
je 0x10005d98
mov ah, 2
cmp dl, 0xf3
jne 0x10005d98
or byte [esi + 8], ah
mov dl, 0x80
test cl, 1
jne 0x10005dab
shl cl, 6
and cl, 0x80
mov edx, ecx
jmp 0x10005dab
xor edx, edx
and al, 0x7f
or al, dl
mov byte [esi + 7], al
test byte [esi + 0x302], 0x80
jne 0x10005dbf
xor eax, eax
jmp 0x10005dd4
mov al, 8
test byte [esi + 0x31d], 2
je 0x10005dd4
cmp byte [esi + 0x1a], 0x3e
setne al
shl al, 3
movzx ecx, byte [esi + 8]
and cl, 0xf7
or cl, al
mov byte [esi + 8], cl
test byte [esi + 0x2d9], 0xa
je 0x10005e35
movzx eax, byte [esi + 0x2dc]
mov ecx, dword [esi + 0x308]
cmp ecx, 0x1d
sete dl
add dl, dl
and al, 0xf0
or al, dl
or al, 1
test byte [esi + 0x69], 1
jne 0x10005e15
mov edi, dword [esi + 0x58]
dec edi
mov dl, 4
cmp edi, 2
jb 0x10005e1e
cmp ecx, 0x49
sete dl
shl dl, 2
or dl, al
test byte [esi + 0x2d8], 0xa
setne al
shl al, 3
or al, dl
mov byte [esi + 0x2dc], al
mov ecx, esi
call fcn.10005fc0
mov ecx, eax
sar ecx, 0x1f
and eax, ecx
jmp 0x10005eae
mov ebp, 0x80000037
jmp 0x10005eac
movzx ecx, byte [esi + 5]
movzx eax, byte [esi + 6]
and cl, 0xf
or cl, 0x20
mov byte [esi + 5], cl
mov ecx, ebx
mov cl, ch
and cl, 2
and al, 0xf0
or al, cl
xor al, 2
jmp 0x10005e8b
movzx ecx, byte [esi + 5]
movzx eax, byte [esi + 6]
and cl, 0xf
or cl, 0x10
mov byte [esi + 5], cl
mov ecx, ebx
shr ecx, 9
and cl, 1
and al, 0xf0
or al, cl
xor al, 1
mov byte [esi + 6], al
test al, 0xf
mov ebp, dword [esp + 0x28]
jne 0x1000402d
mov eax, ebx
and eax, 0x8000
je 0x1000402d
mov ebp, 0x80000002
mov eax, ebp
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, 0x80000005
jmp 0x10005eac
mov ebp, 0x80000030
jmp 0x10005eac
mov ebp, 0x80000042
jmp 0x10005eac
mov ebp, 0x8000000d
jmp 0x10005eac
mov ebp, 0x8000000b
jmp 0x10005eac
mov ebp, 0x8000000e
jmp 0x10005eac