Function at 0x10058a4b
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x9c], ebx
mov eax, dword [ebp + 8]
mov edi, dword [eax + 4]
mov dword [ebp - 0xa0], eax
test edi, edi
je 0x10058d77
mov esi, dword [edi + 0x58]
mov edx, dword [esi + 0xc]
movzx eax, byte [esi + 0x4f]
mov ebx, 1
xor ecx, ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ecx
mov ebx, ecx
cmp edx, 1
jg 0x10057ca7
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 2
je 0x10058e7c
and eax, 0xffffffdf
cmp edx, 1
je 0x10058e5a
and eax, 0xffffffbf
mov byte [esi + 0x4f], al
push edi
call fcn.1002355c
pop ecx
test eax, eax
jne 0x10058d8f
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x10057c9f
test al, 0x20
jne 0x10058d6a
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x10]
jmp 0x10057d12
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x10]
lea ecx, [edx - 1]
mov dword [ebp - 0xc], ecx
mov dword [esi + 0xc], ecx
test al, 0x10
je 0x10057d12
test al, 0x20
je 0x10057d12
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
je 0x10058f85
and eax, 0xffffffdf
cmp ecx, 1
je 0x10058f66
and eax, 0xffffffbf
mov byte [esi + 0x4f], al
push edi
mov dword [ebp - 0x20], edx
call fcn.1002355c
mov edx, dword [ebp - 0x20]
add esp, 4
test eax, eax
jne 0x10058e9b
movzx eax, byte [esi + 0x4f]
test al, 0x10
je 0x10057d06
test al, 0x20
jne 0x10059f56
mov edx, dword [ebp - 0xc]
mov dword [esi + 0xc], edx
or eax, 0x20
mov byte [esi + 0x4f], al
movsx edx, byte [esi + 0x48]
add edx, 0xfffffffe
cmp edx, 0x1a
ja case.0x10057d29.3
mov edx, dword [edx*4 + 0x100c0260]
jmp edx
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x14]
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
test eax, eax
jg 0x10058fa1
mov edx, dword [edi + 0x3c]
mov eax, dword [edi + 0x4c]
mov dword [edi + 0xf0], 0
cmp edx, eax
ja 0x10057d55
mov edx, eax
mov dword [edi + 0x4c], edx
or byte [edi + 0x131], 0x20
mov edx, dword [esi + 0xc]
movzx eax, byte [esi + 0x4f]
jmp 0x10057c5a
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x14]
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x10057d8e
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x10057d8e
mov byte [edx + 0x1e], 0
mov eax, 1
mov dword [ebp - 0xc], eax
jmp 0x10057d93
xor eax, eax
mov dword [ebp - 0xc], eax
movzx eax, byte [edi + 0x12d]
test al, 0x10
je 0x10057dae
movsx edx, byte [edi + 0x11e]
cmp edx, 1
je 0x100590e0
push edi
call fcn.1002b904
pop ecx
test eax, eax
jne 0x10059228
add dword [edi + 0x90], 1
adc dword [edi + 0x94], 0
and byte [edi + 0x12e], 0x7f
push 0
push edi
call fcn.1002b60c
add esp, 8
test eax, eax
jne 0x1005914d
movsx eax, byte [edi + 0x11c]
mov dword [ebp - 0x20], eax
lea eax, [eax - 1]
cmp eax, 6
ja case.default.0x10057e02
mov eax, dword [eax*4 + 0x100c0364]
jmp eax
mov eax, dword [edi + 0x40]
test eax, eax
je 0x10057e10
mov dword [edi + 0x3c], eax
jmp 0x10057e16
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0xc0]
lea edx, [eax + edx - 1]
mov dword [ebp - 0x7c], edx
mov dword [edi + 0x44], edx
movzx edx, byte [edi + 0x128]
mov dword [ebp - 0x80], edx
jmp 0x10057fae
mov edx, dword [edi + 0x18]
test edx, edx
je 0x10059117
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x10057e80
mov eax, 0x2c
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x10057e65
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov eax, 0x2c
mov esp, ebp
pop ebp
ret
movzx ecx, byte [edi + 0x12b]
movzx ebx, byte [edi + 0x12c]
mov edx, ecx
and edx, 0x40
mov esi, 2
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
jne 0x10057eac
mov esi, 0
test bl, 1
mov edx, 4
jne 0x10057ebb
mov edx, 0
or eax, esi
or eax, edx
mov edx, 0x2c
push edx
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x40]
test eax, eax
je 0x1005913f
add eax, 4
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0xc0]
lea edx, [eax + edx - 8]
mov dword [ebp - 0x7c], edx
mov dword [edi + 0x44], edx
movzx edx, byte [edi + 0x128]
mov dword [ebp - 0x80], edx
jmp 0x10057fae
mov eax, dword [edi + 0x40]
test eax, eax
je 0x10057f24
mov dword [edi + 0x3c], eax
jmp 0x10057f2a
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0xc0]
mov dword [ebp - 0x104], edx
lea edx, [eax + edx]
mov dword [ebp - 0x7c], edx
movzx edx, byte [edi + 0x128]
mov dword [ebp - 0x80], edx
test dl, 4
je 0x10057f6b
movzx edx, byte [edi + 0x12a]
test dl, 0x40
je 0x10057f6b
movzx edx, byte [edi + 0x12b]
test dl, 4
je 0x10057f6b
mov edx, dword [ebp - 0x20]
cmp edx, 1
je 0x10057f73
mov edx, dword [ebp - 0x7c]
mov dword [edi + 0x44], edx
jmp 0x10057fae
mov edx, dword [ebp - 0x104]
lea edx, [eax + edx - 2]
mov dword [ebp - 0x7c], edx
mov dword [edi + 0x44], edx
jmp 0x10057fae
push 0x3b5
push str.for_wseq_fmt.c
push 2
push 8
call fcn.100149ac
add esp, 0x10
movzx eax, byte [edi + 0x128]
mov edx, dword [edi + 0x44]
mov dword [ebp - 0x80], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x80]
test dl, 4
je 0x10057fda
movzx edx, byte [edi + 0x12a]
test dl, 0x40
je 0x10057fda
movzx edx, byte [edi + 0x12b]
test dl, 4
je 0x10057fda
movsx edx, byte [edi + 0x11c]
cmp edx, 1
je 0x1005802d
movsx edx, byte [edi + 0x11e]
cmp edx, 2
jne 0x10058005
movsx edx, byte [edi + 0x11c]
cmp edx, 7
je 0x1005802d
cmp edx, 6
je 0x1005802d
mov edx, dword [ebp - 0x7c]
add edx, 0xffffffff
mov dword [ebp - 0x7c], edx
mov dword [edi + 0x44], edx
jmp 0x1005802d
cmp edx, 1
jne 0x1005802d
movsx edx, byte [edi + 0x11c]
cmp edx, 7
je 0x10058027
cmp edx, 6
je 0x10058027
mov edx, dword [ebp - 0x7c]
add edx, 0xffffffff
mov dword [ebp - 0x7c], edx
mov dword [edi + 0x44], edx
add eax, 5
mov dword [edi + 0x3c], eax
mov edx, dword [ebp - 0x7c]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], eax
sub edx, eax
push edx
push 0x20
push eax
call fcn.1007f474
add esp, 0xc
mov eax, dword [ebp - 0xc]
mov dword [edi + 0xf0], 0
test eax, eax
je 0x10059658
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [esi + 0xc]
movzx eax, byte [esi + 0x4f]
jmp 0x10057c5a
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
cmp edx, 2
jl 0x100592f3
mov edx, dword [esi + 0xc]
jmp 0x10057c5a
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x14]
movzx eax, byte [edi + 0x128]
test al, 4
je 0x10059704
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [edi + 0x7c]
mov dword [edx + 0xc], edi
mov edx, dword [esi + 0xc]
movzx eax, byte [esi + 0x4f]
jmp 0x10057c5a
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp + 0xc]
movsx ecx, byte [edx]
cmp ecx, 1
je 0x100599d3
cmp ecx, 2
je 0x100599a3
movzx edx, byte [esi + 0x4e]
test dl, 0x20
jne 0x100581cf
mov ebx, dword [ebp - 0x10]
movzx edx, byte [edi + 0x128]
test dl, 2
je 0x1005811c
test eax, 0x80
je 0x1005811c
lea ecx, [ebp + 0x10]
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x100]
push ebx
push eax
push edx
push ecx
lea eax, [ebp + 0xc]
push eax
call fcn.10013cec
add esp, 0x14
test eax, eax
jne 0x1005973f
mov edx, dword [edi + 0x18]
test edx, edx
je 0x10059717
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x10058167
mov eax, 0x3c
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x1005814c
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov eax, 0x3c
mov esp, ebp
pop ebp
ret
movzx ecx, byte [edi + 0x12b]
movzx ebx, byte [edi + 0x12c]
mov edx, ecx
and edx, 0x40
mov esi, 2
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
jne 0x10058193
mov esi, 0
test bl, 1
mov edx, 4
jne 0x100581a2
mov edx, 0
or eax, esi
or eax, edx
mov edx, 0x3c
push edx
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
cmp ecx, 1
je 0x10059992
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x100581f5
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x100581f5
mov byte [edx + 0x1e], 0
mov eax, 1
mov dword [ebp - 0xc], eax
jmp 0x100581fa
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0xf0]
test eax, eax
je 0x10058227
movzx eax, byte [edi + 0x131]
mov dword [edi + 0xf0], 0
test al, 0x20
jne 0x10058227
mov eax, dword [edi + 0xf8]
test eax, eax
jne 0x100584f0
movzx eax, byte [edi + 0x12d]
mov dword [ebp - 0x7c], eax
test al, 0x10
je 0x10058245
movsx eax, byte [edi + 0x11e]
cmp eax, 1
je 0x10059776
push edi
call fcn.1002b904
pop ecx
test eax, eax
jne 0x100598c7
add dword [edi + 0x90], 1
adc dword [edi + 0x94], 0
and byte [edi + 0x12e], 0x7f
push 0
push edi
call fcn.1002b60c
add esp, 8
test eax, eax
jne 0x100597ec
movsx eax, byte [edi + 0x11c]
mov dword [ebp - 0x80], eax
lea eax, [eax - 1]
cmp eax, 6
ja case.default.0x10058299
mov eax, dword [eax*4 + 0x100c0380]
jmp eax
mov eax, dword [edi + 0x40]
test eax, eax
je 0x100582a7
mov dword [edi + 0x3c], eax
jmp 0x100582ad
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0xc0]
lea edx, [eax + edx - 1]
mov dword [ebp - 0x7c], edx
mov dword [edi + 0x44], edx
movzx edx, byte [edi + 0x128]
mov dword [ebp - 0x20], edx
jmp 0x10058445
mov edx, dword [edi + 0x18]
test edx, edx
je 0x100597b6
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x10058317
mov eax, 0x2c
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x100582fc
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov eax, 0x2c
mov esp, ebp
pop ebp
ret
movzx ecx, byte [edi + 0x12b]
movzx ebx, byte [edi + 0x12c]
mov edx, ecx
and edx, 0x40
mov esi, 2
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
jne 0x10058343
mov esi, 0
test bl, 1
mov edx, 4
jne 0x10058352
mov edx, 0
or eax, esi
or eax, edx
mov edx, 0x2c
push edx
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x40]
test eax, eax
je 0x100597de
add eax, 4
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0xc0]
lea edx, [eax + edx - 8]
mov dword [ebp - 0x7c], edx
mov dword [edi + 0x44], edx
movzx edx, byte [edi + 0x128]
mov dword [ebp - 0x20], edx
jmp 0x10058445
mov eax, dword [edi + 0x40]
test eax, eax
je 0x100583bb
mov dword [edi + 0x3c], eax
jmp 0x100583c1
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0xc0]
mov dword [ebp - 0x104], edx
lea edx, [eax + edx]
mov dword [ebp - 0x7c], edx
movzx edx, byte [edi + 0x128]
mov dword [ebp - 0x20], edx
test dl, 4
je 0x10058402
movzx edx, byte [edi + 0x12a]
test dl, 0x40
je 0x10058402
movzx edx, byte [edi + 0x12b]
test dl, 4
je 0x10058402
mov edx, dword [ebp - 0x80]
cmp edx, 1
je 0x1005840a
mov edx, dword [ebp - 0x7c]
mov dword [edi + 0x44], edx
jmp 0x10058445
mov edx, dword [ebp - 0x104]
lea edx, [eax + edx - 2]
mov dword [ebp - 0x7c], edx
mov dword [edi + 0x44], edx
jmp 0x10058445
push 0x485
push str.for_wseq_fmt.c
push 2
push 8
call fcn.100149ac
add esp, 0x10
movzx eax, byte [edi + 0x128]
mov edx, dword [edi + 0x44]
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x20]
test dl, 4
je 0x10058471
movzx edx, byte [edi + 0x12a]
test dl, 0x40
je 0x10058471
movzx edx, byte [edi + 0x12b]
test dl, 4
je 0x10058471
movsx edx, byte [edi + 0x11c]
cmp edx, 1
je 0x100584c4
movsx edx, byte [edi + 0x11e]
cmp edx, 2
jne 0x1005849c
movsx edx, byte [edi + 0x11c]
cmp edx, 7
je 0x100584c4
cmp edx, 6
je 0x100584c4
mov edx, dword [ebp - 0x7c]
add edx, 0xffffffff
mov dword [ebp - 0x7c], edx
mov dword [edi + 0x44], edx
jmp 0x100584c4
cmp edx, 1
jne 0x100584c4
movsx edx, byte [edi + 0x11c]
cmp edx, 7
je 0x100584be
cmp edx, 6
je 0x100584be
mov edx, dword [ebp - 0x7c]
add edx, 0xffffffff
mov dword [ebp - 0x7c], edx
mov dword [edi + 0x44], edx
add eax, 5
mov dword [edi + 0x3c], eax
mov edx, dword [ebp - 0x7c]
mov dword [edi + 0x4c], 0
mov dword [edi + 0x48], eax
sub edx, eax
push edx
push 0x20
push eax
call fcn.1007f474
add esp, 0xc
mov dword [edi + 0xf8], 1
and byte [edi + 0x131], 0xdf
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x100584fe
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x4c], eax
mov edx, dword [esi + 0xc]
movzx eax, byte [esi + 0x4f]
jmp 0x10057c5a
cmp ebx, 1
jle 0x100585e4
mov eax, dword [ebp - 0x100]
cmp eax, 7
je 0x1005852d
cmp eax, 8
jne 0x100585b0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x1005854d
mov eax, dword [ebp - 0x84]
add dword [ebp - 0x90], eax
add ebx, 0xffffffff
xor edx, edx
mov dword [ebp - 0x1c], edx
jmp 0x100587c1
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
test eax, eax
je 0x1005855c
mov edx, 1
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0xfc]
test edx, edx
jle 0x100599da
mov dword [ebp - 0x78], edi
xor eax, eax
xor ecx, ecx
mov edi, dword [ebp + eax*4 - 0x58]
sub edi, dword [ebp + eax*4 - 0x3c]
imul edi, dword [ebp + eax*4 - 0x74]
add eax, 1
add ecx, edi
cmp eax, edx
jl 0x10058574
mov edi, dword [ebp - 0x78]
add ecx, dword [ebp - 0xf8]
mov dword [ebp - 0x90], ecx
lea edx, [ebp - 0x58]
lea eax, [ebp - 0x100]
push eax
push edx
push 0
call fcn.1002470c
add esp, 0xc
jmp 0x100585cb
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x1c]
add dword [ebp - 0x90], eax
test edx, edx
je 0x100585c8
mov edx, 0
mov dword [ebp - 0x1c], edx
mov dword [edi + 0xf0], 0
add ebx, 0xffffffff
or byte [edi + 0x131], 0x20
jmp 0x100587c1
lea ebx, [ebp + 0xc]
lea ecx, [ebp + 0x10]
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x100]
push eax
push edx
push ecx
push ebx
call fcn.10013d90
add esp, 0x10
test eax, eax
jne 0x10059e8b
mov ecx, dword [ebp - 0x88]
cmp ecx, 2
je 0x10059e5f
cmp ecx, 1
je 0x10059302
mov eax, dword [ebp - 0x100]
cmp eax, 7
jl 0x10058734
cmp eax, 8
jg 0x10058734
mov ebx, dword [ebp - 0x84]
test ebx, ebx
je 0x10058651
mov eax, dword [ebp - 0x8c]
cdq
idiv ebx
mov ebx, eax
jmp 0x10058666
movzx eax, byte [edi + 0x128]
test al, 2
je 0x10058725
mov ebx, dword [ebp - 0x8c]
test ebx, ebx
je 0x10058727
cmp ecx, 0x34
je 0x1005867d
cmp ecx, 0x1c
jl 0x1005868a
cmp ecx, 0x2c
jg 0x1005868a
mov eax, 1
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
jmp 0x1005868f
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xfc]
test eax, eax
jle 0x100599e1
mov dword [ebp - 0x148], esi
mov dword [ebp - 0x78], edi
xor ecx, ecx
xor edx, edx
mov edi, dword [ebp + edx - 0xf0]
mov esi, dword [ebp + edx - 0xec]
mov dword [ebp + ecx*4 - 0x3c], edi
add edx, 0xc
mov dword [ebp + ecx*4 - 0x74], esi
mov dword [ebp + ecx*4 - 0x58], edi
add ecx, 1
cmp ecx, eax
jl 0x100586aa
mov esi, dword [ebp - 0x148]
mov edi, dword [ebp - 0x78]
test eax, eax
jle 0x100599e1
mov dword [ebp - 0x78], edi
xor edx, edx
xor ecx, ecx
mov edi, dword [ebp + edx*4 - 0x58]
sub edi, dword [ebp + edx*4 - 0x3c]
imul edi, dword [ebp + edx*4 - 0x74]
add edx, 1
add ecx, edi
cmp edx, eax
jl 0x100586e6
mov edi, dword [ebp - 0x78]
add ecx, dword [ebp - 0xf8]
mov dword [ebp - 0x90], ecx
lea edx, [ebp - 0x58]
lea eax, [ebp - 0x100]
push eax
push edx
push 0
call fcn.1002470c
add esp, 0xc
jmp 0x100587b0
xor ebx, ebx
mov eax, 1
mov dword [ebp - 8], eax
jmp 0x100587c8
cmp eax, 6
je 0x1005873e
cmp eax, 5
jne 0x1005878d
mov ecx, dword [ebp - 0x84]
test ecx, ecx
je 0x1005875c
mov eax, dword [ebp - 0x8c]
cdq
idiv ecx
mov ebx, eax
movzx eax, byte [edi + 0x128]
jmp 0x1005876d
movzx eax, byte [edi + 0x128]
test al, 2
je 0x10058789
mov ebx, dword [ebp - 0x8c]
test al, 2
je 0x100587c1
test ebx, ebx
jne 0x100587b0
mov dword [edi + 0xf0], 1
mov eax, 1
mov dword [ebp - 8], eax
jmp 0x100587c8
xor ebx, ebx
jmp 0x100587c1
cmp ecx, 0x34
je 0x1005879c
cmp ecx, 0x1c
jl 0x100587ab
cmp ecx, 0x2c
jg 0x100587ab
mov ebx, 2
mov eax, 1
mov dword [ebp - 0x1c], eax
jmp 0x100587b0
mov ebx, 1
mov dword [edi + 0xf0], 0
or byte [edi + 0x131], 0x20
mov eax, dword [ebp - 8]
test eax, eax
je 0x100587e1
mov edx, dword [esi + 0xc]
test edx, edx
jne 0x100599e8
movzx eax, byte [esi + 0x4f]
mov edx, 2
jmp 0x10057cad
mov eax, dword [esi]
and byte [esi + 0x4f], 0xf7
movzx edx, byte [eax + 0x12e]
test dl, 0x10
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x14]
je 0x10058822
movsx ecx, byte [esi + 0x48]
mov eax, dword [ecx*4 + 0x100bc7c0]
test eax, eax
je 0x10058826
mov edx, dword [ebp - 0x88]
movsx eax, byte [eax + edx]
test eax, eax
je 0x10058826
mov dword [ebp - 0x88], eax
movsx ecx, byte [esi + 0x48]
jmp 0x10058826
movsx ecx, byte [esi + 0x48]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x10058839
mov eax, dword [eax*4 + 0x100c02e0]
jmp eax
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x10058873
or byte [esi + 0x50], 2
mov eax, dword [ebp - 0x88]
movsx edx, word [eax*2 + 0x100bc660]
mov dword [esi + 0x38], edx
cmp edx, 0xffffffff
je 0x100599fd
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [ebp - 0x88]
movsx edx, word [eax*2 + 0x100bc660]
mov dword [esi + 0x38], edx
cmp edx, 0xffffffff
je 0x10059a26
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x100588ea
or byte [esi + 0x50], 2
mov eax, dword [ebp - 0x88]
movsx edx, byte [eax + 0x100bc9f0]
mov dword [esi + 0x38], edx
cmp edx, 0xffffffff
je 0x10059a4f
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x1005892e
or byte [esi + 0x50], 2
mov eax, dword [ebp - 0x88]
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, byte [eax + 0x100bc9db]
mov dword [esi + 0x38], edx
mov eax, 0
jb 0x10058bd5
jmp 0x10058bf8
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x10058976
movsx edx, word [esi + 0x40]
or byte [esi + 0x50], 2
add ecx, 0xffffffd8
mov eax, dword [ebp - 0x88]
movsx eax, word [eax*8 + 0x100bc61a]
add eax, edx
mov dword [esi + 0x38], eax
xor eax, eax
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [ebp - 0x88]
movsx edx, byte [eax + 0x100bc9f0]
mov dword [esi + 0x38], edx
cmp edx, 0xffffffff
je 0x10059a78
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [ebp - 0x88]
cmp eax, 5
jl 0x100589d8
cmp eax, 0x11
jle 0x100589ee
mov eax, 0x3d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058adf
mov dword [esi + 0x38], 2
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [ebp - 0x88]
cmp eax, 5
jl 0x10058a18
cmp eax, 0x11
jle 0x10058a2e
mov eax, 0x3d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058adf
movsx eax, byte [eax + 0x100bc9db]
mov dword [esi + 0x38], eax
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [ebp - 0x88]
cmp eax, 0x19
jge 0x10059aa1
cmp eax, 5
jl 0x10058a81
cmp eax, 0x11
jg 0x10058a81
movsx eax, byte [eax + 0x100bc9db]
mov dword [esi + 0x38], eax
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
cmp eax, 0x39
je 0x10058a8b
cmp eax, 0x38
jne 0x10058aa7
mov eax, dword [ebp - 0x84]
mov dword [esi + 0x38], eax
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, 0x3d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058adf
mov eax, dword [ebp - 0x88]
cmp eax, 0x19
jl 0x10058ace
cmp eax, 0x34
jle 0x10058b87
mov eax, 0x3d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x10059ae0
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x10058b21
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x10058b0b
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x10058b4f
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x10058b61
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
movsx edx, word [eax*8 + 0x100bc618]
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x100bc61c]
movzx eax, word [eax*8 + 0x100bc61e]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [ebp - 0x84]
mov dword [esi + 0x38], eax
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x10058bf8
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x10058bf0
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x38]
cmp ecx, edx
jge 0x10058bed
mov ecx, edx
mov dword [esi + 0x38], ecx
test eax, eax
jne 0x10058adf
movzx eax, byte [esi + 0x50]
test al, 2
je 0x10058cad
mov edx, dword [esi + 0x38]
cmp edx, 0x40
ja 0x10058c19
lea eax, [ebp - 0x144]
mov dword [ebp - 4], eax
xor ebx, ebx
jmp 0x10058c35
lea eax, [ebp - 4]
push eax
push 0
push edx
call fcn.1004970c
add esp, 0xc
test eax, eax
jne 0x10059bce
mov ebx, dword [ebp - 4]
mov eax, ebx
push dword [esi + 0x38]
push 0x20
push eax
call fcn.1007f474
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push esi
push eax
call fcn.1001bab4
add esp, 0x18
test eax, eax
je 0x10058c72
cmp eax, 0x3f
jne 0x10059b03
movzx eax, byte [edi + 0x12f]
test al, 1
jne 0x10058c72
mov dword [esi + 0x10], 0x3f
mov eax, dword [esi + 0x38]
test eax, eax
je 0x10058c95
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx]
cmp edx, 0x20
jne 0x10058cb0
add ecx, 1
mov dword [ebp - 4], ecx
mov eax, dword [esi + 0x38]
add eax, 0xffffffff
mov dword [esi + 0x38], eax
jne 0x10058c79
movsx edx, word [esi + 0x40]
test edx, edx
jne 0x10058cb0
mov dword [esi + 0x38], 1
add dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x38]
jmp 0x10058cb0
mov eax, dword [esi + 0x38]
mov edx, eax
add edx, dword [edi + 0x3c]
cmp edx, dword [edi + 0x44]
jbe 0x10058ce7
mov edx, dword [edi + 0xc0]
cmp eax, 0x200
jge 0x10058ccc
mov eax, 0x200
shr edx, 3
cmp edx, eax
jge 0x10058cd5
mov edx, eax
push edx
push edi
call fcn.10024784
add esp, 8
test eax, eax
jne 0x10059d84
movzx eax, byte [esi + 0x50]
test al, 2
je 0x10058d2e
mov edx, dword [esi + 0x38]
test edx, edx
je 0x10058d18
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, dword [edi + 0x3c]
mov byte [ecx], al
add dword [edi + 0x3c], 1
add dword [ebp - 4], 1
mov eax, dword [esi + 0x38]
add eax, 0xffffffff
mov dword [esi + 0x38], eax
jne 0x10058cf6
movzx eax, byte [esi + 0x50]
and eax, 0xfffffffd
mov byte [esi + 0x50], al
test ebx, ebx
je 0x10058d29
push ebx
call fcn.10049680
pop ecx
mov edx, dword [edi + 0x3c]
jmp 0x10058d52
push dword [edi + 0x3c]
lea eax, [ebp - 0x90]
push esi
push eax
call fcn.1001bab4
add esp, 0xc
test eax, eax
jne 0x10059c99
mov edx, dword [edi + 0x3c]
add edx, dword [esi + 0x38]
mov dword [edi + 0x3c], edx
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x10058d5b
mov edx, eax
mov dword [edi + 0x4c], edx
mov edx, dword [esi + 0xc]
movzx eax, byte [esi + 0x4f]
jmp 0x10057c5a
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x10058d77
add eax, 1
mov dword [esi + 0xc], eax
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
xor eax, eax
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x10058e37
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x10058dd1
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x10058dbb
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x10058dff
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x10058e11
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x1c]
test edx, edx
jne 0x10057c7a
mov edx, dword [ebp - 0x10]
cmp edx, 1
jg 0x10057c7a
or eax, 0x40
mov byte [esi + 0x4f], al
jmp 0x10057c80
mov edx, dword [ebp - 0x1c]
test edx, edx
jne 0x10058e93
mov edx, dword [ebp - 0x10]
cmp edx, 1
jg 0x10058e93
or eax, 0x20
jmp 0x10057c7a
and eax, 0xffffffdf
jmp 0x10057c7a
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x10058f43
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x10058edd
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x10058ec7
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x10058f0b
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x10058f1d
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x10057cd9
cmp ebx, 1
jg 0x10057cd9
or eax, 0x40
mov byte [esi + 0x4f], al
jmp 0x10057cdf
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x10058f99
cmp ebx, 1
jg 0x10058f99
or eax, 0x20
jmp 0x10057cd9
and eax, 0xffffffdf
jmp 0x10057cd9
mov edx, dword [edi + 0x3c]
mov dword [ebp - 0x14], ebx
xor eax, eax
mov ebx, eax
movzx eax, byte [ebx + ecx]
mov byte [edx], al
mov edx, dword [edi + 0x3c]
add edx, 1
cmp edx, dword [edi + 0x44]
mov dword [edi + 0x3c], edx
jbe 0x10058ff5
mov edx, dword [esi + 0x38]
mov eax, dword [edi + 0xc0]
mov dword [ebp - 0xc], ecx
cmp edx, 0x200
jge 0x10058fd8
mov edx, 0x200
shr eax, 3
cmp eax, edx
jge 0x10058fe1
mov eax, edx
push eax
push edi
call fcn.10024784
mov ecx, dword [ebp - 0xc]
add esp, 8
test eax, eax
jne 0x10059005
mov edx, dword [edi + 0x3c]
add ebx, 1
cmp ebx, dword [esi + 0x38]
jl 0x10058fab
mov ebx, dword [ebp - 0x14]
jmp 0x10057d42
mov edx, dword [edi + 0x18]
test edx, edx
je 0x100590b8
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x10059050
mov eax, 0x42
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x10059035
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov eax, 0x42
mov esp, ebp
pop ebp
ret
movzx ecx, byte [edi + 0x12b]
movzx ebx, byte [edi + 0x12c]
mov edx, ecx
and edx, 0x40
mov esi, 2
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
jne 0x1005907c
mov esi, 0
test bl, 1
mov edx, 4
jne 0x1005908b
mov edx, 0
or eax, esi
or eax, edx
mov edx, 0x42
push edx
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x42
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x38]
movsx edx, byte [ecx + 5]
cmp edx, 0x20
je 0x1005910a
cmp edx, 0x2b
jne 0x100590fc
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x12d]
and eax, 0xffffffef
mov byte [edi + 0x12d], al
jmp 0x10057dae
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x12d]
jmp 0x100590fc
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x38]
add eax, 4
mov dword [edi + 0x3c], eax
jmp 0x10057ef9
mov edx, dword [edi + 0x18]
test edx, edx
je 0x10059200
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x10059198
mov eax, 0x26
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x1005917d
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
movzx ecx, byte [edi + 0x12b]
movzx ebx, byte [edi + 0x12c]
mov edx, ecx
and edx, 0x40
mov esi, 2
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
jne 0x100591c4
mov esi, 0
test bl, 1
mov edx, 4
jne 0x100591d3
mov edx, 0
or eax, esi
or eax, edx
mov edx, 0x26
push edx
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x100592d0
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1005926a
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x10059254
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x10059298
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x100592aa
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
movsx eax, byte [eax]
cmp eax, 1
jne 0x10059613
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x10059315
movzx eax, byte [eax + 0x1e]
test eax, eax
jne 0x1005944c
mov eax, dword [edi + 0xf0]
test eax, eax
jne 0x10059330
mov eax, dword [ebp - 8]
test eax, eax
je 0x1005935e
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x1005935e
movzx eax, byte [edi + 0x131]
mov dword [edi + 0xf0], 0
test al, 0x20
je 0x10059350
and eax, 0xffffffdf
mov byte [edi + 0x131], al
jmp 0x1005935e
mov eax, dword [edi + 0xf8]
test eax, eax
jne 0x1005944c
movzx eax, byte [edi + 0x12d]
test al, 0x10
je 0x10059379
movsx edx, byte [edi + 0x11e]
cmp edx, 1
je 0x10059664
push edi
call fcn.1002b904
pop ecx
test eax, eax
je 0x10059430
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x1005969b
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x100593ca
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x100593b4
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x100593f8
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x1005940a
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
add dword [edi + 0x90], 1
adc dword [edi + 0x94], 0
and byte [edi + 0x12e], 0x7f
and byte [edi + 0x131], 0xdf
movzx eax, byte [esi + 0x4f]
test al, 2
je 0x10059517
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x4f], al
call fcn.10049680
pop ecx
test eax, eax
je 0x10059517
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x100596be
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x100594b1
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x1005949b
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x100594df
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x100594f1
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x10]
test edx, edx
je 0x100595cf
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x100596e1
movzx eax, byte [ecx + 0x3c]
test al, 2
je 0x10059569
mov dword [ecx + 0x30], edx
mov edx, dword [edi + 0x18]
mov eax, dword [esi + 0x10]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x10059550
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x94]
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0x98]
mov esp, ebp
pop ebp
ret
push edx
push edx
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor eax, eax
test ecx, ecx
setne al
test ebx, 0x80
mov ecx, 2
jne 0x10059597
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x100595a9
mov ebx, 0
or eax, ecx
or eax, ebx
push eax
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push dword [edi + 0xc8]
and byte [edi + 0x12b], 0x3f
and byte [edi + 0x12c], 0xf7
and byte [edi + 0x12e], 0xfe
call fcn.100260c0
pop ecx
mov edx, dword [ebp - 0xa0]
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov dword [edx + 4], 0
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x10059637
mov ebx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x94]
mov dword [esi + 0xc], 2
xor eax, eax
mov esi, dword [ebp - 0x98]
mov esp, ebp
pop ebp
ret
mov eax, edx
lea ecx, [ebp + 0xc]
lea edx, [ebp + 0x10]
push eax
push edx
push ecx
call fcn.1001401c
add esp, 0xc
cmp eax, 2
je 0x10059618
cmp eax, 1
je 0x10059302
mov edx, dword [esi + 0xc]
movzx eax, byte [esi + 0x4f]
jmp 0x10057c5a
mov ecx, dword [edi + 0x38]
movsx edx, byte [ecx + 5]
cmp edx, 0x20
je 0x1005968e
cmp edx, 0x2b
jne 0x10059680
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x12d]
and eax, 0xffffffef
mov byte [edi + 0x12d], al
jmp 0x10059379
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x12d]
jmp 0x10059680
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
push edx
push edx
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
or byte [edi + 0x12d], 0x10
mov edx, dword [esi + 0xc]
movzx eax, byte [esi + 0x4f]
jmp 0x10057c5a
push edi
mov eax, 0x3c
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
movsx edx, byte [eax]
cmp edx, 2
jne 0x10059302
cmp ebx, 2
jge 0x10059302
mov ebx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x94]
mov dword [esi + 0xc], 2
xor eax, eax
mov esi, dword [ebp - 0x98]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x38]
movsx eax, byte [edx + 5]
cmp eax, 0x20
je 0x100597a6
cmp eax, 0x2b
jne 0x10059795
mov byte [edx + 5], 0
movzx eax, byte [edi + 0x12d]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
and eax, 0xffffffef
mov byte [edi + 0x12d], al
jmp 0x10058245
mov byte [edx + 5], 0x24
movzx eax, byte [edi + 0x12d]
mov dword [ebp - 0x7c], eax
jmp 0x10059795
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x38]
add eax, 4
mov dword [edi + 0x3c], eax
jmp 0x10058390
mov edx, dword [edi + 0x18]
test edx, edx
je 0x1005989f
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x10059837
mov eax, 0x26
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x1005981c
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
movzx ecx, byte [edi + 0x12b]
movzx ebx, byte [edi + 0x12c]
mov edx, ecx
and edx, 0x40
mov esi, 2
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
jne 0x10059863
mov esi, 0
test bl, 1
mov edx, 4
jne 0x10059872
mov edx, 0
or eax, esi
or eax, edx
mov edx, 0x26
push edx
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x1005996f
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x10059909
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x100598f3
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x10059937
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x10059949
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
cmp eax, 2
jl 0x10059302
jmp 0x100581d8
cmp ecx, 1
je 0x10059992
mov eax, dword [ebp - 0x10]
cmp eax, 2
jge 0x100581d8
mov ebx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x94]
mov dword [esi + 0xc], 2
xor eax, eax
mov esi, dword [ebp - 0x98]
mov esp, ebp
pop ebp
ret
je 0x10059992
jmp 0x100581d8
xor ecx, ecx
jmp 0x1005858d
xor ecx, ecx
jmp 0x100586ff
movzx eax, byte [esi + 0x4f]
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x14]
add edx, 1
mov dword [esi + 0xc], edx
jmp 0x10057c5a
mov eax, dword [ebp - 0x84]
shl eax, 3
cmp eax, 0x11
jg 0x10059a10
mov eax, 0x11
mov dword [esi + 0x38], eax
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [ebp - 0x84]
shl eax, 3
cmp eax, 0x11
jg 0x10059a39
mov eax, 0x11
mov dword [esi + 0x38], eax
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [ebp - 0x84]
lea edx, [eax + eax*2]
cmp edx, 7
jg 0x10059a62
mov edx, 7
xor eax, eax
mov dword [esi + 0x38], edx
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
mov eax, dword [ebp - 0x84]
lea edx, [eax + eax*2]
cmp edx, 7
jg 0x10059a8b
mov edx, 7
xor eax, eax
mov dword [esi + 0x38], edx
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
cmp eax, 0x34
jg 0x10058a81
movsx edx, word [eax*8 + 0x100bc618]
mov dword [esi + 0x38], edx
movzx edx, word [eax*8 + 0x100bc61c]
movzx eax, word [eax*8 + 0x100bc61e]
mov word [esi + 0x40], dx
mov word [esi + 0x42], ax
xor eax, eax
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x10058bd5
jmp 0x10058bf8
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x10059bab
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x10059b45
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x10059b2f
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x10059b73
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x10059b85
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x10059c76
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x10059c10
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x10059bfa
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x10059c3e
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x10059c50
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
cmp eax, 0x3f
jne 0x10059cb9
movzx eax, byte [edi + 0x12f]
test al, 1
jne 0x10058d49
mov dword [esi + 0x10], 0x3f
jmp 0x10058d49
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x10059d61
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x10059cfb
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x10059ce5
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x10059d29
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x10059d3b
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x10059e37
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x10059dcf
mov eax, 0x42
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x10059db4
xor edx, edx
mov dword [eax + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov eax, 0x42
mov esp, ebp
pop ebp
ret
movzx ecx, byte [edi + 0x12b]
movzx ebx, byte [edi + 0x12c]
mov edx, ecx
and edx, 0x40
mov esi, 2
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
jne 0x10059dfb
mov esi, 0
test bl, 1
mov edx, 4
jne 0x10059e0a
mov edx, 0
or eax, esi
or eax, edx
mov edx, 0x42
push edx
push edx
push eax
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x42
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x10059e6d
mov eax, 2
jmp 0x10059e70
add eax, 1
mov ebx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x94]
mov dword [esi + 0xc], eax
mov esi, dword [ebp - 0x98]
xor eax, eax
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x10059f33
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x10059ecd
mov dword [ecx + 0x30], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x10059eb7
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edi + 0x64], ecx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [edi + 0x12b]
movzx esi, byte [edi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x10059efb
mov ecx, 0
test esi, 1
mov ebx, 4
jne 0x10059f0d
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push edi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x94]
mov dword [esi + 0xc], edx
mov esi, dword [ebp - 0x98]
xor eax, eax
mov esp, ebp
pop ebp
ret