Function at 0x100118f0
Capabilities:
Authenticate hmac
Encode data using base64
Encode data using xor
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1018fc83
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x398
mov dword [ebp - 0x14], 0
push esi
lea esi, [ebp - 0xc0]
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xc0], 0x3b15c713
mov ecx, esi
mov dword [ebp - 0xbc], 0xe21ce0f0
mov dword [ebp - 0xb8], 0xa4585c7e
mov dword [ebp - 0xb4], 0xbeab7022
movaps xmm1, xmmword [ebp - 0xc0]
lea edx, [ecx + 1]
mov dword [ebp - 0x150], 0xb27ac21
mov dword [ebp - 0x14c], 0xe21ce0df
mov dword [ebp - 0x148], 0xa4585c7e
mov dword [ebp - 0x144], 0xbeab7022
pxor xmm1, xmmword [ebp - 0x150]
push edi
movaps xmmword [ebp - 0xc0], xmm1
mov byte [ebp - 0x24], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100119a6
push dword [ebp - 0x24]
sub ecx, edx
lea eax, [ebp - 0x170]
push ecx
push esi
push eax
call fcn.100088c0
add esp, 0x10
mov edx, dword [ebx + 8]
mov ecx, edx
mov dword [ebp - 4], 0
mov byte [ebp - 0x24], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100119d6
push dword [ebp - 0x24]
sub ecx, esi
lea eax, [ebp - 0x48]
push ecx
push edx
push eax
call fcn.100088c0
add esp, 0x10
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x170]
call fcn.10010d50
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0
mov esi, eax
call fcn.10010050
push esi
lea ecx, [ebp - 0x1f8]
call fcn.1000ed40
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 3
call fcn.10010050
cmp dword [ebp - 0x1e4], 8
lea ecx, [ebp - 0x1f8]
mov dword [ebp - 0x24], ecx
jb 0x10011a47
mov ecx, dword [ebp - 0x1f8]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x1e8]
lea esi, [ecx + eax*2]
push esi
push ecx
call fcn.10016300
mov edi, eax
add esp, 8
cmp edi, esi
je 0x10011a95
movzx edx, word [esi - 2]
cmp edx, 0x5c
je 0x10011a77
cmp edx, 0x2f
je 0x10011a77
add esi, 0xfffffffe
cmp edi, esi
jne 0x10011a60
jmp 0x10011a95
cmp edi, esi
je 0x10011a95
jmp 0x10011a80
movzx ecx, word [esi - 2]
cmp ecx, 0x5c
je 0x10011a8e
cmp ecx, 0x2f
jne 0x10011a95
add esi, 0xfffffffe
cmp edi, esi
jne 0x10011a80
mov eax, dword [ebp - 0x24]
xor ecx, ecx
sub esi, eax
mov dword [ebp - 0x48], ecx
sar esi, 1
push esi
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x48]
push eax
call fcn.10008820
mov dword [ebp - 0x28], 0x1f0
cmp dword [ebp - 0x34], 8
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 4
jb 0x10011ad1
mov eax, dword [ebp - 0x48]
push eax
call fcn.101607f8
test edx, edx
jne 0x100138ed
lea ecx, [ebp - 0x48]
call fcn.10010050
xor eax, eax
mov dword [ebp - 0xc4], 0xf
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], eax
mov byte [ebp - 0xd8], al
cmp dword [ebp - 0x1e4], 8
lea eax, [ebp - 0x1f8]
mov byte [ebp - 4], 5
jb 0x10011b30
mov eax, dword [ebp - 0x1f8]
push 1
push 0x40
push 1
push eax
lea ecx, [ebp - 0x3a8]
call fcn.1000e330
mov eax, dword [ebp - 0x3a8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x3a8], 0x101a8ff8
mov eax, dword [ebp - 0x3a8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x3ac], eax
mov eax, dword [ebp - 0x3a8]
mov byte [ebp - 4], 6
mov eax, dword [eax + 4]
test byte [ebp + eax - 0x39c], 6
jne 0x10011b96
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x3a8]
push eax
call fcn.100081b0
add esp, 8
lea ecx, [ebp - 0x3a8]
mov byte [ebp - 4], 5
call fcn.10010f00
mov esi, dword [ebp - 0xc4]
lea eax, [ebp - 0xd8]
mov edx, dword [ebp - 0xd8]
cmp esi, 0x10
jb 0x10011bbe
mov eax, edx
lea ecx, [ebp - 0xd8]
jb 0x10011bc8
mov ecx, edx
mov edi, dword [ebp - 0xc8]
add ecx, edi
cmp eax, ecx
je 0x10011bee
xor byte [eax], 0x1b
inc eax
cmp eax, ecx
jne 0x10011bd4
mov esi, dword [ebp - 0xc4]
mov edi, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xd8]
lea eax, [ebp - 0xd8]
cmp esi, 0x10
jb 0x10011bfb
mov eax, edx
lea ecx, [edi + eax]
lea eax, [ebp - 0xd8]
jb 0x10011c08
mov eax, edx
push ecx
push eax
lea ecx, [ebp - 0x228]
call fcn.10008040
push 1
sub esp, 0x28
mov byte [ebp - 4], 7
mov eax, esp
mov dword [eax + 0x24], 0
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x2d0]
push eax
call fcn.1001c1d0
add esp, 0x34
mov esi, dword [ebp - 0x224]
mov byte [ebp - 4], 9
test esi, esi
je 0x10011c6c
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x10011c6c
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x10011c6c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea eax, [ebp - 0x150]
push eax
lea ecx, [ebp - 0x2d0]
call fcn.10017eb0
lea eax, [ebp - 0x260]
push eax
lea ecx, [ebp - 0x2d0]
call fcn.1001a0f0
mov edx, dword [ebp - 0x150]
cmp edx, dword [ebp - 0x260]
jne 0x100138bd
mov esi, dword [ebp - 0x144]
mov edi, dword [ebp - 0x148]
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x50], eax
movzx eax, byte [edx]
mov ecx, eax
sub ecx, 1
je 0x10011cdf
sub ecx, 1
je 0x10011cd7
cmp esi, dword [ebp - 0x254]
jmp 0x10011ce8
cmp edi, dword [ebp - 0x258]
jmp 0x10011ce8
mov ecx, dword [ebp - 0x25c]
cmp dword [ebp - 0x50], ecx
setne cl
test cl, cl
je 0x10013808
sub eax, 0
je 0x100137d8
sub eax, 1
je 0x10011d16
sub eax, 1
je 0x10011d12
test esi, esi
jne 0x100138fc
mov esi, edx
jmp 0x10011d1c
mov esi, edi
jmp 0x10011d1c
mov esi, dword [ebp - 0x50]
add esi, 0x28
mov dword [ebp - 0x1e0], 0xb27c848
lea eax, [ebp - 0x1e0]
mov dword [ebp - 0x1dc], 0xe21ce0df
mov ecx, esi
mov dword [ebp - 0x1d8], 0xa4585c7e
mov dword [ebp - 0x1d4], 0xbeab7022
movaps xmm1, xmmword [ebp - 0x1e0]
mov dword [ebp - 0x270], 0xb27ac21
mov dword [ebp - 0x26c], 0xe21ce0df
mov dword [ebp - 0x268], 0xa4585c7e
mov dword [ebp - 0x264], 0xbeab7022
pxor xmm1, xmmword [ebp - 0x270]
push eax
movaps xmmword [ebp - 0x1e0], xmm1
call fcn.100083f0
mov dl, byte [eax]
movzx ecx, dl
add ecx, 0xfffffffc
cmp ecx, 3
ja case.default.0x10011da1
jmp dword [ecx*4 + 0x100139e8]
cmp dl, 6
jne 0x10011db4
lea edx, [eax + 8]
mov edx, dword [edx]
jmp 0x10011dff
xor edx, edx
mov edx, dword [edx]
jmp 0x10011dff
mov ecx, eax
call fcn.1000ad80
mov edx, dword [eax]
jmp 0x10011dff
cmp dl, 7
jne 0x10011dcf
add eax, 8
jmp 0x10011dd1
xor eax, eax
fld qword [eax]
fnstcw word [ebp - 0x16]
movzx eax, word [ebp - 0x16]
or eax, 0xc00
mov dword [ebp - 0x14], eax
fldcw word [ebp - 0x14]
fistp qword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
fldcw word [ebp - 0x16]
jmp 0x10011dff
cmp dl, 4
jne 0x10011dfa
add eax, 8
jmp 0x10011dfc
xor eax, eax
movzx edx, byte [eax]
mov eax, edx
mov dword [ebp - 0x14], edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x1c], edx
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
lea eax, [ebp - 0x1c]
imul edi, ecx, 0x1000193
mov ecx, dword [ebp - 0xac]
push edi
push eax
lea eax, [ebp - 0x2f0]
push eax
call fcn.10001f10
mov eax, dword [eax + 4]
test eax, eax
je 0x100132f8
mov ecx, dword [ebp - 0xac]
cmp eax, dword [ecx + 4]
je 0x100132f8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push edi
push eax
lea eax, [ebp - 0x200]
push eax
call fcn.10001f10
mov eax, dword [ebp - 0x1fc]
test eax, eax
je 0x100139d8
mov dword [ebp - 0x190], 0x6e57d555
lea edi, [eax + 0x10]
mov dword [ebp - 0x18c], 0xe21ce0df
lea eax, [ebp - 0x190]
mov dword [ebp - 0x188], 0xa4585c7e
mov ecx, esi
mov dword [ebp - 0x184], 0xbeab7022
movaps xmm1, xmmword [ebp - 0x190]
mov dword [ebp - 0x280], 0xb27ac21
mov dword [ebp - 0x27c], 0xe21ce0df
mov dword [ebp - 0x278], 0xa4585c7e
mov dword [ebp - 0x274], 0xbeab7022
pxor xmm1, xmmword [ebp - 0x280]
push eax
mov dword [ebp - 0x20], edi
movaps xmmword [ebp - 0x190], xmm1
call fcn.100083f0
mov ecx, eax
call fcn.1000ab00
cmp eax, 0x82ba97c3
ja 0x1001232c
je 0x100120a9
cmp eax, 0x121831e
je 0x10011ff5
cmp eax, 0x6b957804
jne 0x1001314b
mov dword [ebp - 0x1a0], 0x7e4bcd57
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x19c], 0xe21ce0ba
mov ecx, esi
mov dword [ebp - 0x198], 0xa4585c7e
mov dword [ebp - 0x194], 0xbeab7022
movaps xmm1, xmmword [ebp - 0x1a0]
mov dword [ebp - 0x290], 0xb27ac21
mov dword [ebp - 0x28c], 0xe21ce0df
mov dword [ebp - 0x288], 0xa4585c7e
mov dword [ebp - 0x284], 0xbeab7022
pxor xmm1, xmmword [ebp - 0x290]
push eax
movaps xmmword [ebp - 0x1a0], xmm1
call fcn.100083f0
cmp byte [eax], 4
jne 0x10013936
mov al, byte [eax + 8]
mov byte [ebp - 0x15], al
test edi, edi
jne 0x10011fcc
mov byte [edi], al
jmp 0x1001314b
mov eax, dword [edi + 0x24]
and eax, 0xfffffffc
je 0x10011fe9
add eax, 4
push 0x102183f0
push eax
call fcn.10163785
add esp, 8
test eax, eax
je 0x10011feb
xor edi, edi
mov al, byte [ebp - 0x15]
mov byte [edi], al
jmp 0x1001314b
mov dword [ebp - 0x1b0], 0x7e4bcd57
lea eax, [ebp - 0x1b0]
mov dword [ebp - 0x1ac], 0xe21ce0ba
mov ecx, esi
mov dword [ebp - 0x1a8], 0xa4585c7e
mov dword [ebp - 0x1a4], 0xbeab7022
movaps xmm1, xmmword [ebp - 0x1b0]
mov dword [ebp - 0x2a0], 0xb27ac21
mov dword [ebp - 0x29c], 0xe21ce0df
mov dword [ebp - 0x298], 0xa4585c7e
mov dword [ebp - 0x294], 0xbeab7022
pxor xmm1, xmmword [ebp - 0x2a0]
push eax
movaps xmmword [ebp - 0x1b0], xmm1
call fcn.100083f0
mov ecx, eax
call fcn.1000ac20
fst dword [ebp - 0x14]
test edi, edi
jne 0x1001207e
fstp dword [edi]
jmp 0x1001314b
mov eax, dword [edi + 0x24]
fstp st(0)
and eax, 0xfffffffc
je 0x1001209d
add eax, 4
push 0x10218694
push eax
call fcn.10163785
add esp, 8
test eax, eax
je 0x1001209f
xor edi, edi
fld dword [ebp - 0x14]
fstp dword [edi]
jmp 0x1001314b
mov dword [ebp - 0x1c0], 0x7e4bcd57
lea eax, [ebp - 0x1c0]
mov dword [ebp - 0x1bc], 0xe21ce0ba
mov ecx, esi
mov dword [ebp - 0x1b8], 0xa4585c7e
mov dword [ebp - 0x1b4], 0xbeab7022
movaps xmm1, xmmword [ebp - 0x1c0]
mov dword [ebp - 0x250], 0xb27ac21
mov dword [ebp - 0x24c], 0xe21ce0df
mov dword [ebp - 0x248], 0xa4585c7e
mov dword [ebp - 0x244], 0xbeab7022
pxor xmm1, xmmword [ebp - 0x250]
push eax
movaps xmmword [ebp - 0x1c0], xmm1
call fcn.100083f0
mov esi, dword [ebp - 0x28]
xor ecx, ecx
mov dword [ebp - 0x48], ecx
or esi, 8
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], cl
cmp byte [eax], 3
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x14], esi
jne 0x10013986
push dword [eax + 8]
lea ecx, [ebp - 0x48]
call fcn.100042c0
cmp dword [ebp - 0x34], 0x10
lea edx, [ebp - 0x48]
mov ecx, dword [ebp - 0x48]
setae byte [ebp - 0x15]
jb 0x1001216b
mov edx, ecx
add edx, dword [ebp - 0x38]
lea eax, [ebp - 0x48]
cmp byte [ebp - 0x15], 0
je 0x10012179
mov eax, ecx
push edx
push eax
lea ecx, [ebp - 0x220]
call fcn.10008040
push 1
sub esp, 0x28
mov byte [ebp - 4], 0x14
mov eax, esp
mov dword [eax + 0x24], 0
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.1001c1d0
add esp, 0x34
lea ecx, [ebp - 0x220]
call fcn.10010300
and esi, 0xfffffff7
mov dword [ebp - 0x28], esi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x17
call fcn.10003ee0
push 3
lea ecx, [ebp - 0xc0]
call fcn.10017d00
lea ecx, [ebp - 0x49]
push ecx
push eax
call fcn.1000a8e0
movzx esi, byte [ebp - 0x49]
lea ecx, [ebp - 0xc0]
add esp, 8
push 2
call fcn.10017d00
lea ecx, [ebp - 0x4a]
push ecx
push eax
call fcn.1000a8e0
movzx edi, byte [ebp - 0x4a]
lea ecx, [ebp - 0xc0]
add esp, 8
push 1
call fcn.10017d00
lea ecx, [ebp - 0x4b]
push ecx
push eax
call fcn.1000a8e0
movzx eax, byte [ebp - 0x4b]
lea ecx, [ebp - 0xc0]
add esp, 8
mov dword [ebp - 0x14], eax
push 0
call fcn.10017d00
lea ecx, [ebp - 0x4c]
push ecx
push eax
call fcn.1000a8e0
movzx eax, byte [ebp - 0x4c]
add esp, 8
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 0x18
mov eax, dword [ecx + 0x24]
and eax, 3
sub eax, 1
je 0x10012263
sub eax, 1
jne 0x10012273
push ecx
jmp 0x10012266
push dword [ecx + 0x1c]
mov eax, dword [ecx + 0x20]
mov eax, dword [eax]
call eax
mov ecx, dword [ebp - 0x20]
add esp, 4
movzx eax, byte [ebp - 0xc0]
shl esi, 8
or esi, edi
mov dword [ecx + 0x24], 0x102183f8
shl esi, 8
or esi, dword [ebp - 0x14]
shl esi, 8
or esi, dword [ebp - 0x1c]
mov dword [ecx], esi
mov byte [ebp - 4], 9
sub eax, 1
je 0x100122f7
sub eax, 1
je 0x100122d3
sub eax, 1
jne 0x1001314b
push dword [ebp - 0xb8]
lea eax, [ebp - 0x15]
push eax
call fcn.1000a630
push 1
push dword [ebp - 0xb8]
lea eax, [ebp - 0x15]
push eax
call fcn.10018d60
add esp, 0x14
jmp 0x1001314b
mov ecx, dword [ebp - 0xb8]
call fcn.10017470
push 1
push dword [ebp - 0xb8]
lea eax, [ebp - 0x15]
push eax
call fcn.10018de0
add esp, 0xc
jmp 0x1001314b
mov esi, dword [ebp - 0xb8]
mov ecx, esi
mov eax, dword [esi]
push dword [eax + 4]
push esi
call fcn.10009990
push 0x38
push dword [esi]
call fcn.10161f28
push 1
push dword [ebp - 0xb8]
lea eax, [ebp - 0x15]
push eax
call fcn.10018da0
add esp, 0x14
jmp 0x1001314b
cmp eax, 0x87fab768
je 0x100123e9
cmp eax, 0xd48c8265
jne 0x1001314b
mov dword [ebp - 0x1d0], 0x7e4bcd57
lea eax, [ebp - 0x1d0]
mov dword [ebp - 0x1cc], 0xe21ce0ba
mov ecx, esi
mov dword [ebp - 0x1c8], 0xa4585c7e
mov dword [ebp - 0x1c4], 0xbeab7022
movaps xmm1, xmmword [ebp - 0x1d0]
mov dword [ebp - 0x2c0], 0xb27ac21
mov dword [ebp - 0x2bc], 0xe21ce0df
mov dword [ebp - 0x2b8], 0xa4585c7e
mov dword [ebp - 0x2b4], 0xbeab7022
pxor xmm1, xmmword [ebp - 0x2c0]
push eax
movaps xmmword [ebp - 0x1d0], xmm1
call fcn.100083f0
mov ecx, eax
call fcn.1000aa00
mov esi, eax
test edi, edi
je 0x100123e0
mov eax, dword [edi + 0x24]
and eax, 0xfffffffc
je 0x100123e0
add eax, 4
push 0x102183e4
push eax
call fcn.10163785
add esp, 8
test eax, eax
je 0x100123e2
xor edi, edi
mov dword [edi], esi
jmp 0x1001314b
mov dword [ebp - 0x180], 0x7e4bcd57
lea eax, [ebp - 0x180]
mov dword [ebp - 0x17c], 0xe21ce0ba
mov ecx, esi
mov dword [ebp - 0x178], 0xa4585c7e
mov dword [ebp - 0x174], 0xbeab7022
movaps xmm1, xmmword [ebp - 0x180]
mov dword [ebp - 0x170], 0xb27ac21
mov dword [ebp - 0x16c], 0xe21ce0df
mov dword [ebp - 0x168], 0xa4585c7e
mov dword [ebp - 0x164], 0xbeab7022
pxor xmm1, xmmword [ebp - 0x170]
push eax
movaps xmmword [ebp - 0x180], xmm1
call fcn.100083f0
mov esi, dword [ebp - 0x28]
xor ecx, ecx
mov dword [ebp - 0x48], ecx
or esi, 4
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], cl
cmp byte [eax], 3
mov byte [ebp - 4], 0x19
mov dword [ebp - 0x14], esi
jne 0x10013774
push dword [eax + 8]
lea ecx, [ebp - 0x48]
call fcn.100042c0
cmp dword [ebp - 0x34], 0x10
lea edx, [ebp - 0x48]
mov ecx, dword [ebp - 0x48]
setae byte [ebp - 0x15]
jb 0x100124ab
mov edx, ecx
add edx, dword [ebp - 0x38]
lea eax, [ebp - 0x48]
cmp byte [ebp - 0x15], 0
je 0x100124b9
mov eax, ecx
push edx
push eax
lea ecx, [ebp - 0x218]
call fcn.10008040
push 1
sub esp, 0x28
mov byte [ebp - 4], 0x1c
mov eax, esp
mov dword [eax + 0x24], 0
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0xa8]
push eax
call fcn.1001c1d0
add esp, 0x34
lea ecx, [ebp - 0x218]
call fcn.10010300
and esi, 0xfffffffb
mov dword [ebp - 0x28], esi
mov ecx, dword [ebp - 0x34]
mov byte [ebp - 4], 0x1f
cmp ecx, 0x10
jb 0x10012537
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001252d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100139e2
push ecx
push edx
call fcn.10161f28
add esp, 8
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], 0
test edi, edi
je 0x1001256a
mov eax, dword [edi + 0x24]
and eax, 0xfffffffc
je 0x1001256a
add eax, 4
push 0x10218414
push eax
call fcn.10163785
add esp, 8
test eax, eax
je 0x1001256f
xor edi, edi
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [edi + 4]
mov dword [ebp - 0x1c], edi
mov esi, dword [eax]
cmp esi, edi
je 0x100125a0
mov edi, edi
mov ecx, esi
call fcn.10010500
add esi, 0x98
cmp esi, edi
jne 0x10012580
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov esi, eax
mov dword [ebp - 0x1c], eax
mov dword [ecx + 4], eax
jmp 0x100125a3
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp - 0xa8]
mov edi, dword [ebp - 0xa0]
sub ecx, 0
je 0x100125d7
sub ecx, 1
je 0x100125d2
sub ecx, 1
je 0x100125c8
mov dword [ebp - 0x14], 1
jmp 0x100125dc
mov ecx, dword [edi + 4]
sub ecx, dword [edi]
sar ecx, 4
jmp 0x100125d9
mov ecx, dword [edi + 4]
jmp 0x100125d9
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov ecx, eax
mov eax, 0x6bca1af3
sub ecx, esi
imul ecx
mov eax, dword [ebp - 0x14]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x18], ecx
cmp eax, ecx
jae 0x10012633
imul eax, eax, 0x98
add eax, esi
mov esi, eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
je 0x1001262b
lea ecx, [ecx]
mov ecx, esi
call fcn.10010500
add esi, 0x98
cmp esi, dword [ebp - 0x1c]
jne 0x10012610
mov edi, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 4], eax
jmp 0x1001267c
jbe 0x1001267c
mov edi, dword [ebp - 0x20]
mov eax, 0x6bca1af3
mov ecx, dword [edi + 8]
sub ecx, esi
imul ecx
mov ecx, dword [ebp - 0x14]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jbe 0x10012663
lea eax, [ebp - 0x15]
push eax
push ecx
mov ecx, edi
call fcn.1000a210
jmp 0x10012676
sub ecx, dword [ebp - 0x18]
push edi
push ecx
push dword [ebp - 0x1c]
call fcn.1000a500
add esp, 0xc
mov dword [edi + 4], eax
mov edi, dword [ebp - 0xa0]
xor edx, edx
mov dword [ebp - 0x14], edx
movzx ecx, byte [ebp - 0xa8]
mov eax, ecx
sub eax, 0
je 0x100130eb
sub eax, 1
je 0x100126ae
sub eax, 1
je 0x100126a4
mov eax, 1
jmp 0x100126b1
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 4
jmp 0x100126b1
mov eax, dword [edi + 4]
cmp edx, eax
jae 0x100130eb
push edx
lea ecx, [ebp - 0xa8]
call fcn.10017d00
cmp byte [eax], 2
jne 0x1001373c
mov eax, dword [eax + 8]
mov ecx, dword [eax]
mov dl, byte [ecx]
movzx eax, dl
add eax, 0xfffffffc
cmp eax, 3
ja case.default.0x100126e4
jmp dword [eax*4 + 0x100139f8]
cmp dl, 6
jne 0x100126f7
lea esi, [ecx + 8]
mov esi, dword [esi]
jmp 0x10012740
xor esi, esi
mov esi, dword [esi]
jmp 0x10012740
call fcn.1000ad80
mov esi, dword [eax]
jmp 0x10012740
cmp dl, 7
jne 0x10012710
add ecx, 8
jmp 0x10012712
xor ecx, ecx
fld qword [ecx]
fnstcw word [ebp - 0x16]
movzx eax, word [ebp - 0x16]
or eax, 0xc00
mov dword [ebp - 0x1c], eax
fldcw word [ebp - 0x1c]
fistp qword [ebp - 0x30]
mov esi, dword [ebp - 0x30]
fldcw word [ebp - 0x16]
jmp 0x10012740
cmp dl, 4
jne 0x1001273b
add ecx, 8
jmp 0x1001273d
xor ecx, ecx
movzx esi, byte [ecx]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x6bca1af3
imul ecx
mov ecx, dword [ebp - 0x14]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x100139d3
imul eax, ecx, 0x98
push ecx
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x1c], eax
mov dword [eax + edi + 0x84], esi
call fcn.10017d00
cmp byte [eax], 2
jne 0x100136d4
mov eax, dword [eax + 8]
mov ecx, dword [eax]
add ecx, 0x10
mov dl, byte [ecx]
movzx eax, dl
add eax, 0xfffffffc
cmp eax, 3
ja case.default.0x100127a4
jmp dword [eax*4 + 0x10013a08]
cmp dl, 6
jne 0x100127b7
lea esi, [ecx + 8]
mov esi, dword [esi]
jmp 0x10012800
xor esi, esi
mov esi, dword [esi]
jmp 0x10012800
call fcn.1000ad80
mov esi, dword [eax]
jmp 0x10012800
cmp dl, 7
jne 0x100127d0
add ecx, 8
jmp 0x100127d2
xor ecx, ecx
fld qword [ecx]
fnstcw word [ebp - 0x16]
movzx eax, word [ebp - 0x16]
or eax, 0xc00
mov dword [ebp - 0x2c], eax
fldcw word [ebp - 0x2c]
fistp qword [ebp - 0x30]
mov esi, dword [ebp - 0x30]
fldcw word [ebp - 0x16]
jmp 0x10012800
cmp dl, 4
jne 0x100127fb
add ecx, 8
jmp 0x100127fd
xor ecx, ecx
movzx esi, byte [ecx]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x6bca1af3
imul ecx
mov ecx, dword [ebp - 0x14]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x100139d3
mov edx, dword [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0xa8]
mov dword [edi + edx + 0x8c], esi
call fcn.10017d00
cmp byte [eax], 2
jne 0x1001366c
mov eax, dword [eax + 8]
mov ecx, dword [eax]
add ecx, 0x20
mov dl, byte [ecx]
movzx eax, dl
add eax, 0xfffffffc
cmp eax, 3
ja case.default.0x1001285e
jmp dword [eax*4 + 0x10013a18]
cmp dl, 6
jne 0x10012871
lea esi, [ecx + 8]
mov esi, dword [esi]
jmp 0x100128b0
xor esi, esi
mov esi, dword [esi]
jmp 0x100128b0
call fcn.1000ad80
mov esi, dword [eax]
jmp 0x100128b0
cmp dl, 7
jne 0x10012894
fld qword [ecx + 8]
add ecx, 8
call fcn.10162460
mov esi, eax
jmp 0x100128b0
xor ecx, ecx
fld qword [ecx]
call fcn.10162460
mov esi, eax
jmp 0x100128b0
cmp dl, 4
jne 0x100128ab
add ecx, 8
jmp 0x100128ad
xor ecx, ecx
movzx esi, byte [ecx]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x6bca1af3
imul ecx
mov ecx, dword [ebp - 0x14]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x100139d3
mov eax, dword [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0xa8]
mov dword [edi + eax + 0x90], esi
call fcn.10017d00
cmp byte [eax], 2
jne 0x10013604
mov eax, dword [eax + 8]
mov ecx, dword [eax]
add ecx, 0x30
mov dl, byte [ecx]
movzx eax, dl
add eax, 0xfffffffc
cmp eax, 3
ja case.default.0x1001290e
jmp dword [eax*4 + 0x10013a28]
cmp dl, 6
jne 0x10012921
lea esi, [ecx + 8]
mov esi, dword [esi]
jmp 0x1001296a
xor esi, esi
mov esi, dword [esi]
jmp 0x1001296a
call fcn.1000ad80
mov esi, dword [eax]
jmp 0x1001296a
cmp dl, 7
jne 0x1001293a
add ecx, 8
jmp 0x1001293c
xor ecx, ecx
fld qword [ecx]
fnstcw word [ebp - 0x16]
movzx eax, word [ebp - 0x16]
or eax, 0xc00
mov dword [ebp - 0x2c], eax
fldcw word [ebp - 0x2c]
fistp qword [ebp - 0x30]
mov esi, dword [ebp - 0x30]
fldcw word [ebp - 0x16]
jmp 0x1001296a
cmp dl, 4
jne 0x10012965
add ecx, 8
jmp 0x10012967
xor ecx, ecx
movzx esi, byte [ecx]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x6bca1af3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [ebp - 0x14]
jbe 0x100139d3
mov eax, dword [ebp - 0x1c]
mov dword [edi + eax + 0x80], esi
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x6bca1af3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x100139d3
mov eax, dword [ebp - 0x1c]
mov eax, dword [esi + eax + 0x80]
cmp eax, 0xd48c8265
je 0x10012c8f
cmp eax, 0x121831e
je 0x10012b36
cmp eax, 0x6b957804
jne 0x10012dc3
push edi
lea ecx, [ebp - 0xa8]
call fcn.10017d00
cmp byte [eax], 2
jne 0x10013380
mov eax, dword [eax + 8]
mov ecx, dword [eax]
add ecx, 0x40
mov dl, byte [ecx]
movzx eax, dl
add eax, 0xfffffffc
cmp eax, 3
ja case.default.0x10012a17
jmp dword [eax*4 + 0x10013a38]
cmp dl, 6
jne 0x10012a2a
lea eax, [ecx + 8]
mov eax, dword [eax]
jmp 0x10012a65
xor eax, eax
mov eax, dword [eax]
jmp 0x10012a65
call fcn.1000ad80
mov eax, dword [eax]
jmp 0x10012a65
cmp dl, 7
jne 0x10012a4b
fld qword [ecx + 8]
add ecx, 8
call fcn.10162460
jmp 0x10012a65
xor ecx, ecx
fld qword [ecx]
call fcn.10162460
jmp 0x10012a65
cmp dl, 4
jne 0x10012a60
add ecx, 8
jmp 0x10012a62
xor ecx, ecx
movzx eax, byte [ecx]
test eax, eax
mov dword [ebp - 0x74], 0x102183ec
setne al
xor ecx, ecx
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], ecx
mov byte [ebp - 0x98], al
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 0x34
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x6bca1af3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x100139d3
mov eax, dword [ebp - 0x1c]
add eax, 0x30
add esi, eax
mov eax, dword [esi + 0x24]
and eax, 3
mov byte [ebp - 4], 0x35
sub eax, 1
je 0x10012aec
sub eax, 1
jne 0x10012af9
push esi
jmp 0x10012aef
push dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
call eax
add esp, 4
lea eax, [ebp - 0x98]
mov dword [esi + 0x24], 0
push eax
mov ecx, esi
call fcn.100047b0
mov byte [ebp - 4], 0x36
mov eax, dword [ebp - 0x74]
and eax, 3
sub eax, 1
je 0x10012db2
sub eax, 1
jne 0x10012dbf
lea ecx, [ebp - 0x98]
push ecx
jmp 0x10012db5
push edi
lea ecx, [ebp - 0xa8]
call fcn.10017d00
cmp byte [eax], 2
jne 0x10013402
mov eax, dword [eax + 8]
mov ecx, dword [eax]
add ecx, 0x40
mov dl, byte [ecx]
movzx eax, dl
add eax, 0xfffffffc
cmp eax, 3
ja case.default.0x10012b64
jmp dword [eax*4 + 0x10013a48]
cmp dl, 6
jne 0x10012b75
add ecx, 8
jmp 0x10012b77
xor ecx, ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x210], eax
mov eax, ecx
and ecx, 0x7fffffff
mov dword [ebp - 0x208], 0
mov dword [ebp - 0x20c], ecx
and eax, 0x80000000
fild qword [ebp - 0x210]
mov dword [ebp - 0x204], eax
fild qword [ebp - 0x208]
fchs
faddp st(1)
jmp 0x10012be8
call fcn.1000ad80
fild qword [eax]
jmp 0x10012be8
cmp dl, 7
jne 0x10012bcd
fld qword [ecx + 8]
add ecx, 8
jmp 0x10012be8
xor ecx, ecx
fld qword [ecx]
jmp 0x10012be8
cmp dl, 4
jne 0x10012bdd
add ecx, 8
jmp 0x10012bdf
xor ecx, ecx
movzx eax, byte [ecx]
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
xor eax, eax
mov dword [ebp - 0x74], 0x10218690
fstp dword [ebp - 0x98]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 0x42
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x6bca1af3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x100139d3
mov eax, dword [ebp - 0x1c]
add eax, 0x30
add esi, eax
mov eax, dword [esi + 0x24]
and eax, 3
mov byte [ebp - 4], 0x43
sub eax, 1
je 0x10012c64
sub eax, 1
jne 0x10012c71
push esi
jmp 0x10012c67
push dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
call eax
add esp, 4
lea eax, [ebp - 0x98]
mov dword [esi + 0x24], 0
push eax
mov ecx, esi
call fcn.100047b0
mov byte [ebp - 4], 0x44
jmp 0x10012b12
push edi
lea ecx, [ebp - 0xa8]
call fcn.10017d00
cmp byte [eax], 2
jne 0x1001359c
mov eax, dword [eax + 8]
mov ecx, dword [eax]
add ecx, 0x40
mov dl, byte [ecx]
movzx eax, dl
add eax, 0xfffffffc
cmp eax, 3
ja case.default.0x10012cbd
jmp dword [eax*4 + 0x10013a58]
cmp dl, 6
jne 0x10012cd0
lea eax, [ecx + 8]
mov eax, dword [eax]
jmp 0x10012d0b
xor eax, eax
mov eax, dword [eax]
jmp 0x10012d0b
call fcn.1000ad80
mov eax, dword [eax]
jmp 0x10012d0b
cmp dl, 7
jne 0x10012cf1
fld qword [ecx + 8]
add ecx, 8
call fcn.10162460
jmp 0x10012d0b
xor ecx, ecx
fld qword [ecx]
call fcn.10162460
jmp 0x10012d0b
cmp dl, 4
jne 0x10012d06
add ecx, 8
jmp 0x10012d08
xor ecx, ecx
movzx eax, byte [ecx]
xor ecx, ecx
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], 0x102183e0
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 0x3b
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x6bca1af3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x100139d3
mov eax, dword [ebp - 0x1c]
add eax, 0x30
add esi, eax
mov eax, dword [esi + 0x24]
and eax, 3
mov byte [ebp - 4], 0x3c
sub eax, 1
je 0x10012d87
sub eax, 1
jne 0x10012d94
push esi
jmp 0x10012d8a
push dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
call eax
add esp, 4
lea eax, [ebp - 0x98]
mov dword [esi + 0x24], 0
push eax
mov ecx, esi
call fcn.100047b0
mov byte [ebp - 4], 0x3d
jmp 0x10012b12
push dword [ebp - 0x7c]
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
call eax
add esp, 4
mov byte [ebp - 4], 0x1f
push edi
lea ecx, [ebp - 0xa8]
call fcn.10017d00
cmp byte [eax], 2
jne 0x10013534
mov eax, dword [eax + 8]
mov ecx, dword [eax]
add ecx, 0x50
mov dl, byte [ecx]
movzx eax, dl
add eax, 0xfffffffc
cmp eax, 3
ja case.default.0x10012df1
jmp dword [eax*4 + 0x10013a68]
cmp dl, 6
jne 0x10012e04
lea eax, [ecx + 8]
mov eax, dword [eax]
jmp 0x10012e3f
xor eax, eax
mov eax, dword [eax]
jmp 0x10012e3f
call fcn.1000ad80
mov eax, dword [eax]
jmp 0x10012e3f
cmp dl, 7
jne 0x10012e25
fld qword [ecx + 8]
add ecx, 8
call fcn.10162460
jmp 0x10012e3f
xor ecx, ecx
fld qword [ecx]
call fcn.10162460
jmp 0x10012e3f
cmp dl, 4
jne 0x10012e3a
add ecx, 8
jmp 0x10012e3c
xor ecx, ecx
movzx eax, byte [ecx]
test eax, eax
mov eax, dword [ebp - 0x20]
setne byte [ebp - 0x15]
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x6bca1af3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x100139d3
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0xa8]
mov al, byte [ebp - 0x15]
push edi
mov byte [edx + esi + 0x89], al
call fcn.10017d00
cmp byte [eax], 2
jne 0x100134cc
mov eax, dword [eax + 8]
mov ecx, dword [eax]
add ecx, 0x60
xor eax, eax
mov byte [ebp - 4], 0x4b
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], eax
mov byte [ebp - 0x124], al
mov eax, dword [ebp - 0x28]
or eax, 2
mov dword [ebp - 0x110], 0xf
cmp byte [ecx], 3
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], eax
jne 0x1001349c
push dword [ecx + 8]
lea ecx, [ebp - 0x124]
call fcn.100042c0
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x6bca1af3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x100139d3
add esi, dword [ebp - 0x1c]
lea eax, [ebp - 0x124]
cmp esi, eax
je 0x10012f63
mov ecx, esi
call fcn.10003ee0
mov eax, dword [ebp - 0x124]
mov ecx, 0xf
mov dword [esi], eax
mov eax, dword [ebp - 0x120]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x11c]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x118]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x114]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x110]
mov dword [esi + 0x14], eax
mov byte [ebp - 0x124], 0
jmp 0x10012f69
mov ecx, dword [ebp - 0x110]
mov esi, dword [ebp - 0x28]
and esi, 0xfffffffd
mov byte [ebp - 4], 0x1f
cmp ecx, 0x10
jb 0x10012fa7
mov edx, dword [ebp - 0x124]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10012f9d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100139e2
push ecx
push edx
call fcn.10161f28
add esp, 8
push edi
lea ecx, [ebp - 0xa8]
call fcn.10017d00
cmp byte [eax], 2
jne 0x10013464
mov eax, dword [eax + 8]
mov ecx, dword [eax]
add ecx, 0x70
xor eax, eax
mov byte [ebp - 4], 0x50
or esi, 1
mov dword [ebp - 0x13c], eax
cmp byte [ecx], 3
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], 0xf
mov byte [ebp - 0x13c], al
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x14], esi
jne 0x10013434
push dword [ecx + 8]
lea ecx, [ebp - 0x13c]
call fcn.100042c0
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x6bca1af3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x100139d3
mov eax, dword [ebp - 0x1c]
add eax, 0x18
add esi, eax
lea eax, [ebp - 0x13c]
cmp esi, eax
je 0x10013097
mov ecx, esi
call fcn.10003ee0
mov eax, dword [ebp - 0x13c]
mov ecx, 0xf
mov dword [esi], eax
mov eax, dword [ebp - 0x138]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x134]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x130]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x12c]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x128]
mov dword [esi + 0x14], eax
mov byte [ebp - 0x13c], 0
jmp 0x1001309d
mov ecx, dword [ebp - 0x128]
and dword [ebp - 0x28], 0xfffffffe
mov byte [ebp - 4], 0x1f
cmp ecx, 0x10
jb 0x100130d9
mov edx, dword [ebp - 0x13c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100130cf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100139e2
push ecx
push edx
call fcn.10161f28
add esp, 8
inc edi
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x14]
jmp 0x10012681
mov byte [ebp - 4], 9
sub ecx, 1
je 0x10013125
sub ecx, 1
je 0x1001310c
sub ecx, 1
jne 0x1001314b
lea eax, [ebp - 0x15]
push edi
push eax
call fcn.1000a630
push 0x18
jmp 0x1001313d
mov ecx, edi
call fcn.10017470
push 0xc
push dword [ebp - 0xa0]
call fcn.10161f28
add esp, 8
jmp 0x1001314b
mov eax, dword [edi]
mov ecx, edi
push dword [eax + 4]
push edi
call fcn.10009990
push 0x38
push dword [edi]
call fcn.10161f28
push 8
push dword [ebp - 0xa0]
call fcn.10161f28
add esp, 0x10
mov edx, dword [ebp - 0xac]
add edx, 0x20
mov dword [ebp - 0x14], edx
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x100131d9
mov eax, dword [edx + 0x1c]
shr eax, 3
cmp eax, ecx
jbe 0x10013177
mov eax, dword [edx + 4]
mov ecx, edx
push eax
push dword [eax]
call fcn.100174f0
jmp 0x100131d9
mov ecx, dword [edx + 4]
mov eax, dword [ecx + 4]
mov dword [eax], 0
mov edi, dword [ecx]
test edi, edi
je 0x100131ae
lea esp, [esp]
mov esi, dword [edi]
lea ecx, [edi + 0xc]
call fcn.10004870
push 0x18
push edi
call fcn.10161f28
add esp, 8
mov edi, esi
test esi, esi
jne 0x10013190
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov dword [eax], eax
mov eax, dword [edx + 4]
mov dword [eax + 4], eax
mov dword [edx + 8], 0
mov esi, dword [edx + 0x10]
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 4]
cmp ecx, esi
je 0x100131d9
lea ecx, [ecx]
mov dword [ecx], eax
add ecx, 4
cmp ecx, esi
jne 0x100131d0
mov edi, dword [0x10218c04]
test edi, edi
je 0x10013200
mov eax, dword [edi + 0x24]
and eax, 0xfffffffc
je 0x10013200
add eax, 4
push 0x10218414
push eax
call fcn.10163785
add esp, 8
test eax, eax
je 0x10013202
xor edi, edi
mov esi, dword [edi]
mov eax, dword [edi + 4]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x2c], eax
cmp esi, eax
je 0x100132f8
lea edi, [esi + 0x84]
jmp 0x10013220
movzx eax, byte [edi]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor ecx, eax
movzx eax, byte [edi + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edi + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebp - 0x14]
push eax
push edi
lea eax, [ebp - 0x2e8]
push eax
call fcn.10001f10
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 4]
test eax, eax
jne 0x10013270
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0xac]
cmp eax, dword [edx + 0x24]
jne 0x100132a7
push edi
lea eax, [ebp - 0x2e0]
xor esi, esi
push eax
call fcn.10002220
mov ecx, dword [eax]
mov eax, 0x6bca1af3
imul esi
add ecx, 0xc
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.10001a80
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x2d8]
push edi
push eax
call fcn.10002220
push dword [ebp - 0x1c]
mov esi, dword [eax]
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x14]
je 0x100132d4
mov ecx, eax
call fcn.100033d0
add dword [esi + 0x10], 0x98
jmp 0x100132dd
push eax
lea ecx, [esi + 0xc]
call fcn.10009360
mov esi, dword [ebp - 0x1c]
add edi, 0x98
add esi, 0x98
mov dword [ebp - 0x1c], esi
cmp esi, dword [ebp - 0x2c]
jne 0x10013220
mov edx, dword [ebp - 0x150]
movzx eax, byte [edx]
sub eax, 1
je 0x1001332b
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x24]
sub eax, 1
je 0x10013320
inc esi
mov dword [ebp - 0xb0], esi
jmp 0x10011cc0
add edi, 0x10
mov dword [ebp - 0x24], edi
jmp 0x10011cc0
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x50], eax
call fcn.10010c10
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x150]
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x24]
jmp 0x10011cbd
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x32
push str.type_must_be_number__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x33
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0x170]
call fcn.100030b0
push eax
lea eax, [ebp - 0x2c0]
mov byte [ebp - 4], 0x30
push str.cannot_use_operator___with_a_numeric_argument_with
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x31
push eax
lea eax, [ebp - 0x250]
push 0x131
push eax
call fcn.10018bc0
add esp, 0x18
lea eax, [ebp - 0x250]
push 0x1020ad34
jmp 0x100139cd
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x40
push str.type_must_be_number__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x41
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0x170]
call fcn.100030b0
push eax
lea eax, [ebp - 0x2c0]
mov byte [ebp - 4], 0x3e
push str.cannot_use_operator___with_a_numeric_argument_with
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x3f
jmp 0x100133ad
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x51
push str.type_must_be_string__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x52
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x4e
push str.cannot_use_operator___with_a_numeric_argument_with
push eax
call fcn.100086c0
push eax
mov byte [ebp - 4], 0x4f
push 0x131
jmp 0x100139b9
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x4c
push str.type_must_be_string__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x4d
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x49
push str.cannot_use_operator___with_a_numeric_argument_with
push eax
call fcn.100086c0
push eax
mov byte [ebp - 4], 0x4a
push 0x131
jmp 0x100139b9
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x47
push str.type_must_be_number__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x48
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x45
push str.cannot_use_operator___with_a_numeric_argument_with
push eax
call fcn.100086c0
push eax
mov byte [ebp - 4], 0x46
push 0x131
jmp 0x100139b9
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x39
push str.type_must_be_number__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x3a
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x37
push str.cannot_use_operator___with_a_numeric_argument_with
push eax
call fcn.100086c0
push eax
mov byte [ebp - 4], 0x38
push 0x131
jmp 0x100139b9
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x2e
push str.type_must_be_number__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x2f
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x2c
push str.cannot_use_operator___with_a_numeric_argument_with
push eax
call fcn.100086c0
push eax
mov byte [ebp - 4], 0x2d
push 0x131
jmp 0x100139b9
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x2a
push str.type_must_be_number__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x2b
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x28
push str.cannot_use_operator___with_a_numeric_argument_with
push eax
call fcn.100086c0
push eax
mov byte [ebp - 4], 0x29
push 0x131
jmp 0x100139b9
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x26
push str.type_must_be_number__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x27
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x24
push str.cannot_use_operator___with_a_numeric_argument_with
push eax
call fcn.100086c0
push eax
mov byte [ebp - 4], 0x25
push 0x131
jmp 0x100139b9
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x22
push str.type_must_be_number__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x23
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x20
push str.cannot_use_operator___with_a_numeric_argument_with
push eax
call fcn.100086c0
push eax
mov byte [ebp - 4], 0x21
push 0x131
jmp 0x100139b9
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x1a
push str.type_must_be_string__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x1b
jmp 0x100139b3
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0xf0]
call fcn.100030b0
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0xd
push str.type_must_be_number__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0xe
jmp 0x100139b3
push str.cannot_get_value
lea ecx, [ebp - 0x48]
call fcn.100030b0
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x6c]
push 0xd6
push eax
call fcn.10018350
add esp, 0xc
push 0x1020acdc
jmp 0x100139ca
lea ecx, [ebp - 0x2d0]
call fcn.1000ffb0
mov ecx, dword [ebp - 0xc4]
cmp ecx, 0x10
jb 0x1001384d
mov edx, dword [ebp - 0xd8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10013843
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100139e2
push ecx
push edx
call fcn.10161f28
add esp, 8
mov ecx, dword [ebp - 0x1e4]
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0xf
mov byte [ebp - 0xd8], 0
cmp ecx, 8
jb 0x100138a8
mov edx, dword [ebp - 0x1f8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1001389e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100139e2
push ecx
push edx
call fcn.10161f28
add esp, 8
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
push str.cannot_compare_iterators_of_different_containers
lea ecx, [ebp - 0x48]
call fcn.100030b0
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x6c]
push 0xd4
push eax
call fcn.10018350
add esp, 0xc
push 0x1020acdc
jmp 0x100139ca
lea eax, [ebp - 0x48]
push eax
push edx
push str.create_directory
call fcn.10017370
push str.cannot_get_value
lea ecx, [ebp - 0x48]
call fcn.100030b0
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0xf4]
push 0xd6
push eax
call fcn.10018350
add esp, 0xc
lea eax, [ebp - 0xf4]
push 0x1020acdc
push eax
call fcn.101638aa
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0x48]
call fcn.100030b0
push eax
lea eax, [ebp - 0x170]
mov byte [ebp - 4], 0xf
push str.type_must_be_boolean__but_is
push eax
call fcn.100086c0
push eax
lea eax, [ebp - 0xf4]
mov byte [ebp - 4], 0x10
push 0x12e
push eax
call fcn.10018bc0
add esp, 0x18
lea eax, [ebp - 0xf4]
push 0x1020ad34
push eax
call fcn.101638aa
mov ecx, eax
call fcn.1001ee70
push eax
lea ecx, [ebp - 0x10c]
call fcn.100030b0
push eax
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 0x12
push str.type_must_be_string__but_is
push eax
call fcn.100086c0
mov byte [ebp - 4], 0x13
push eax
push 0x12e
lea eax, [ebp - 0x6c]
push eax
call fcn.10018bc0
add esp, 0x18
push 0x1020ad34
lea eax, [ebp - 0x6c]
push eax
call fcn.101638aa
call fcn.100176e0
push str.invalid_unordered_map_K__T__key
call fcn.101604bb
call fcn.1016e2aa
nop
invalid