Function at 0x1015f0f0
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb0
mov eax, dword [0x101e5aec]
xor eax, esp
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xb8]
push ebp
mov ebp, dword [esp + 0xb8]
test ebp, ebp
mov dword [esp + 4], eax
je 0x10160376
mov al, byte [ebp + 0x12c]
cmp al, 8
push ebx
push esi
push edi
jae 0x1015f197
mov ebx, dword [esp + 0x10]
movzx edi, al
mov esi, 8
sub esi, edi
push esi
lea ecx, [ebx + edi + 0x20]
push ecx
push ebp
call fcn.101622e0
push esi
add ebx, 0x20
push edi
push ebx
mov byte [ebp + 0x12c], 8
call fcn.1015e6c0
add esp, 0x18
test eax, eax
je 0x1015f18b
cmp edi, 4
jae 0x1015f17d
add esi, 0xfffffffc
push esi
push edi
push ebx
call fcn.1015e6c0
add esp, 0xc
test eax, eax
je 0x1015f17d
push 0x101b0814
jmp 0x1015f182
push 0x101b07ec
push ebp
call fcn.1015e500
add esp, 8
cmp edi, 3
jae 0x1015f197
or dword [ebp + 0x68], 0x1000
mov al, 0x44
mov byte [esp + 0x8e], al
mov byte [esp + 0x1d], al
mov byte [esp + 0x3f], al
mov byte [esp + 0x7f], al
mov al, 0x46
mov dl, 0x49
mov bl, 0x41
mov cl, 0x54
mov byte [esp + 0x2d], al
mov byte [esp + 0x2e], al
mov al, 0x73
mov byte [esp + 0x8c], dl
mov byte [esp + 0x8d], 0x48
mov byte [esp + 0x8f], 0x52
mov byte [esp + 0x90], 0
mov byte [esp + 0x1c], dl
mov byte [esp + 0x1e], bl
mov byte [esp + 0x1f], cl
mov byte [esp + 0x20], 0
mov byte [esp + 0x3c], dl
mov byte [esp + 0x3d], 0x45
mov byte [esp + 0x3e], 0x4e
mov byte [esp + 0x40], 0
mov byte [esp + 0x24], 0x50
mov byte [esp + 0x25], 0x4c
mov byte [esp + 0x26], cl
mov byte [esp + 0x27], 0x45
mov byte [esp + 0x28], 0
mov byte [esp + 0x7c], 0x62
mov byte [esp + 0x7d], 0x4b
mov byte [esp + 0x7e], 0x47
mov byte [esp + 0x80], 0
mov byte [esp + 0x4c], 0x63
mov byte [esp + 0x4d], 0x48
mov byte [esp + 0x4e], 0x52
mov byte [esp + 0x4f], 0x4d
mov byte [esp + 0x50], 0
mov byte [esp + 0x9c], 0x67
mov byte [esp + 0x9d], bl
mov byte [esp + 0x9e], 0x4d
mov byte [esp + 0x9f], bl
mov byte [esp + 0xa0], 0
mov byte [esp + 0x5c], 0x68
mov byte [esp + 0x5d], dl
mov byte [esp + 0x5e], 0x53
mov byte [esp + 0x5f], cl
mov byte [esp + 0x60], 0
mov byte [esp + 0x64], 0x69
mov byte [esp + 0x65], 0x43
mov byte [esp + 0x66], 0x43
mov byte [esp + 0x67], 0x50
mov byte [esp + 0x68], 0
mov byte [esp + 0x2c], 0x6f
mov byte [esp + 0x2f], al
mov byte [esp + 0x30], 0
mov byte [esp + 0x6c], 0x70
mov byte [esp + 0x6d], 0x43
mov byte [esp + 0x6e], bl
mov byte [esp + 0x6f], 0x4c
mov byte [esp + 0x70], 0
mov byte [esp + 0x34], 0x70
mov byte [esp + 0x35], 0x48
mov byte [esp + 0x36], 0x59
mov byte [esp + 0x37], al
mov byte [esp + 0x38], 0
mov byte [esp + 0x44], al
mov byte [esp + 0x45], 0x42
mov byte [esp + 0x46], dl
mov byte [esp + 0x47], cl
mov byte [esp + 0x48], 0
mov byte [esp + 0xac], al
mov byte [esp + 0xad], 0x43
mov byte [esp + 0xae], bl
mov byte [esp + 0xaf], 0x4c
mov byte [esp + 0xb0], 0
mov byte [esp + 0x74], al
mov byte [esp + 0x75], 0x50
mov byte [esp + 0x76], 0x4c
mov byte [esp + 0x77], cl
mov byte [esp + 0x78], 0
mov byte [esp + 0x54], al
mov al, 0x74
mov bl, 0x58
mov byte [esp + 0x55], 0x52
mov byte [esp + 0x56], 0x47
mov byte [esp + 0x57], 0x42
mov byte [esp + 0x58], 0
mov byte [esp + 0x84], al
mov byte [esp + 0x85], 0x45
mov byte [esp + 0x86], bl
mov byte [esp + 0x87], al
mov byte [esp + 0x88], 0
mov byte [esp + 0x94], al
mov byte [esp + 0x95], dl
mov byte [esp + 0x96], 0x4d
mov byte [esp + 0x97], 0x45
mov byte [esp + 0x98], 0
mov byte [esp + 0xa4], al
mov byte [esp + 0xa5], 0x52
mov byte [esp + 0xa6], 0x4e
mov byte [esp + 0xa7], 0x53
mov byte [esp + 0xa8], 0
mov byte [esp + 0xb4], 0x7a
mov byte [esp + 0xb5], cl
mov byte [esp + 0xb6], bl
mov byte [esp + 0xb7], al
mov byte [esp + 0xb8], 0
lea edi, [ebp + 0x11c]
lea esp, [esp]
push 4
lea edx, [esp + 0x1c]
push edx
push ebp
call fcn.101622e0
lea eax, [esp + 0x24]
push eax
push ebp
call fcn.10165d30
push ebp
mov dword [esp + 0x2c], eax
call fcn.1015e850
push 4
push edi
push ebp
call fcn.10164c30
add esp, 0x24
mov eax, 4
lea ecx, [esp + 0x1c]
mov edx, edi
lea esp, [esp]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015f448
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015f430
test eax, eax
je 0x1015f4a5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f497
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f4a5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f497
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f4a5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f497
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f4a5
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x1015f4a5
test esi, esi
mov eax, 1
jg 0x1015f4a7
or eax, 0xffffffff
jmp 0x1015f4a7
xor eax, eax
test eax, eax
jne 0x1015f4ba
mov eax, dword [ebp + 0x68]
test al, 8
je 0x1015f4ba
or eax, 0x2000
mov dword [ebp + 0x68], eax
mov eax, 4
lea ecx, [esp + 0x8c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015f4e0
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015f4c8
test eax, eax
je 0x1015f53d
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f52f
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f53d
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f52f
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f53d
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f52f
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f53d
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x1015f53d
test esi, esi
mov eax, 1
jg 0x1015f53f
or eax, 0xffffffff
jmp 0x1015f53f
xor eax, eax
test eax, eax
jne 0x1015f55b
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
push edx
push ebp
call fcn.10165e20
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x3c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015f57e
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015f566
test eax, eax
je 0x1015f5db
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f5cd
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f5db
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f5cd
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f5db
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f5cd
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f5db
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x1015f5db
test esi, esi
mov eax, 1
jg 0x1015f5dd
or eax, 0xffffffff
jmp 0x1015f5dd
xor eax, eax
test eax, eax
jne 0x1015f5f9
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
push edx
push ebp
call fcn.10166130
add esp, 0xc
jmp 0x1015f3f0
push edi
push ebp
call fcn.1015ed40
add esp, 8
test eax, eax
mov edx, edi
mov eax, 4
je 0x1015f7df
lea ecx, [esp + 0x1c]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015f62e
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015f616
test eax, eax
je 0x1015f68b
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f67d
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f68b
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f67d
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f68b
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f67d
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f68b
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x1015f68b
test esi, esi
mov eax, 1
jg 0x1015f68d
or eax, 0xffffffff
jmp 0x1015f68d
xor eax, eax
test eax, eax
jne 0x1015f695
or dword [ebp + 0x68], 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
push edx
push ebp
call fcn.10167f30
add esp, 0xc
mov eax, 4
lea ecx, [esp + 0x24]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015f6cb
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015f6b3
test eax, eax
je 0x1015f728
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f71a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f728
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f71a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f728
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f71a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f728
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x1015f728
test esi, esi
mov eax, 1
jg 0x1015f72a
or eax, 0xffffffff
jmp 0x1015f72a
xor eax, eax
test eax, eax
jne 0x1015f737
or dword [ebp + 0x68], 2
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x1c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015f75a
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015f742
test eax, eax
je 0x1015f7b7
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f7a9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f7b7
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f7a9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f7b7
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f7a9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f7b7
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x1015f7b7
test esi, esi
mov eax, 1
jg 0x1015f7b9
or eax, 0xffffffff
jmp 0x1015f7b9
xor eax, eax
test eax, eax
jne 0x1015f3f0
mov eax, dword [ebp + 0x68]
test al, 1
jne 0x1016031f
push 0x101b07d0
push ebp
call fcn.1015e500
add esp, 8
jmp 0x10160373
lea ecx, [esp + 0x24]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015f7fb
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015f7e3
test eax, eax
je 0x1015f858
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f84a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f858
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f84a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f858
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f84a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f858
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x1015f858
test esi, esi
mov eax, 1
jg 0x1015f85a
or eax, 0xffffffff
jmp 0x1015f85a
xor eax, eax
test eax, eax
jne 0x1015f876
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
push ebp
call fcn.10165fa0
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x1c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015f899
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015f881
test eax, eax
je 0x1015f8f6
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f8e8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f8f6
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f8e8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f8f6
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015f8e8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f8f6
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x1015f8f6
test esi, esi
mov eax, 1
jg 0x1015f8f8
or eax, 0xffffffff
jmp 0x1015f8f8
xor eax, eax
test eax, eax
je 0x1016033c
mov eax, 4
lea ecx, [esp + 0x7c]
mov edx, edi
jmp 0x1015f910
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015f928
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015f910
test eax, eax
je 0x1015f985
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f977
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f985
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f977
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f985
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015f977
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015f985
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x1015f985
test esi, esi
mov eax, 1
jg 0x1015f987
or eax, 0xffffffff
jmp 0x1015f987
xor eax, eax
test eax, eax
jne 0x1015f9a3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10167150
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x4c]
mov edx, edi
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015f9c8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015f9b0
test eax, eax
je 0x1015fa25
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fa17
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fa25
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fa17
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fa25
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fa17
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fa25
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x1015fa25
test esi, esi
mov eax, 1
jg 0x1015fa27
or eax, 0xffffffff
jmp 0x1015fa27
xor eax, eax
test eax, eax
jne 0x1015fa43
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10166460
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x9c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015fa69
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015fa51
test eax, eax
je 0x1015fac6
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fab8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fac6
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fab8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fac6
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fab8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fac6
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x1015fac6
test esi, esi
mov eax, 1
jg 0x1015fac8
or eax, 0xffffffff
jmp 0x1015fac8
xor eax, eax
test eax, eax
jne 0x1015fae4
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10166180
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x5c]
mov edx, edi
nop
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015fb08
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015faf0
test eax, eax
je 0x1015fb65
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fb57
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fb65
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fb57
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fb65
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fb57
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fb65
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x1015fb65
test esi, esi
mov eax, 1
jg 0x1015fb67
or eax, 0xffffffff
jmp 0x1015fb67
xor eax, eax
test eax, eax
jne 0x1015fb83
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10167390
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x2c]
mov edx, edi
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015fba8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015fb90
test eax, eax
je 0x1015fc05
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fbf7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fc05
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fbf7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fc05
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fbf7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fc05
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x1015fc05
test esi, esi
mov eax, 1
jg 0x1015fc07
or eax, 0xffffffff
jmp 0x1015fc07
xor eax, eax
test eax, eax
jne 0x1015fc23
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10167650
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x6c]
mov edx, edi
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015fc48
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015fc30
test eax, eax
je 0x1015fca5
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fc97
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fca5
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fc97
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fca5
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fc97
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fca5
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x1015fca5
test esi, esi
mov eax, 1
jg 0x1015fca7
or eax, 0xffffffff
jmp 0x1015fca7
xor eax, eax
test eax, eax
jne 0x1015fcc3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10167780
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0xac]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015fce9
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015fcd1
test eax, eax
je 0x1015fd46
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fd38
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fd46
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fd38
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fd46
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fd38
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fd46
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x1015fd46
test esi, esi
mov eax, 1
jg 0x1015fd48
or eax, 0xffffffff
jmp 0x1015fd48
xor eax, eax
test eax, eax
jne 0x1015fd64
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.101679e0
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x34]
mov edx, edi
nop
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015fd88
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015fd70
test eax, eax
je 0x1015fde5
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fdd7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fde5
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fdd7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fde5
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015fdd7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fde5
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x1015fde5
test esi, esi
mov eax, 1
jg 0x1015fde7
or eax, 0xffffffff
jmp 0x1015fde7
xor eax, eax
test eax, eax
jne 0x1015fe03
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10167530
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x44]
mov edx, edi
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015fe28
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015fe10
test eax, eax
je 0x1015fe85
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fe77
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fe85
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fe77
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fe85
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015fe77
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015fe85
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x1015fe85
test esi, esi
mov eax, 1
jg 0x1015fe87
or eax, 0xffffffff
jmp 0x1015fe87
xor eax, eax
test eax, eax
jne 0x1015fea3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.101662f0
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x54]
mov edx, edi
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015fec8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015feb0
test eax, eax
je 0x1015ff25
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015ff17
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015ff25
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015ff17
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015ff25
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x1015ff17
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015ff25
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x1015ff25
test esi, esi
mov eax, 1
jg 0x1015ff27
or eax, 0xffffffff
jmp 0x1015ff27
xor eax, eax
test eax, eax
jne 0x1015ff43
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10166910
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x64]
mov edx, edi
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1015ff68
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015ff50
test eax, eax
je 0x1015ffc5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015ffb7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015ffc5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015ffb7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015ffc5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1015ffb7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x1015ffc5
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x1015ffc5
test esi, esi
mov eax, 1
jg 0x1015ffc7
or eax, 0xffffffff
jmp 0x1015ffc7
xor eax, eax
test eax, eax
jne 0x1015ffe3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10166b10
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x74]
mov edx, edi
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x10160008
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x1015fff0
test eax, eax
je 0x10160065
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x10160057
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x10160065
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x10160057
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x10160065
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x10160057
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x10160065
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x10160065
test esi, esi
mov eax, 1
jg 0x10160067
or eax, 0xffffffff
jmp 0x10160067
xor eax, eax
test eax, eax
jne 0x10160083
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10166cd0
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x84]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x101600a9
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x10160091
test eax, eax
je 0x10160106
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x101600f8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x10160106
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x101600f8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x10160106
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x101600f8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x10160106
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x10160106
test esi, esi
mov eax, 1
jg 0x10160108
or eax, 0xffffffff
jmp 0x10160108
xor eax, eax
test eax, eax
jne 0x10160124
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10167cc0
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0x94]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1016014a
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x10160132
test eax, eax
je 0x101601a7
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x10160199
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x101601a7
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x10160199
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x101601a7
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x10160199
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x101601a7
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x101601a7
test esi, esi
mov eax, 1
jg 0x101601a9
or eax, 0xffffffff
jmp 0x101601a9
xor eax, eax
test eax, eax
jne 0x101601c5
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10167ba0
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0xa4]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x101601eb
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x101601d3
test eax, eax
je 0x10160248
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1016023a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x10160248
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1016023a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x10160248
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x1016023a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x10160248
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x10160248
test esi, esi
mov eax, 1
jg 0x1016024a
or eax, 0xffffffff
jmp 0x1016024a
xor eax, eax
test eax, eax
jne 0x10160266
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10166ef0
add esp, 0xc
jmp 0x1015f3f0
mov eax, 4
lea ecx, [esp + 0xb4]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1016028c
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x10160274
test eax, eax
je 0x101602e9
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x101602db
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x101602e9
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x101602db
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x101602e9
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x101602db
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x101602e9
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x101602e9
test esi, esi
mov eax, 1
jg 0x101602eb
or eax, 0xffffffff
jmp 0x101602eb
xor eax, eax
test eax, eax
jne 0x10160307
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
push ebp
call fcn.10167de0
add esp, 0xc
jmp 0x1015f3f0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
push edx
push ebp
call fcn.10167f30
add esp, 0xc
jmp 0x1015f3f0
cmp byte [ebp + 0x126], 3
jne 0x10160373
test al, 2
jne 0x10160373
push 0x101b07b4
push ebp
call fcn.1015e500
add esp, 8
jmp 0x10160373
mov eax, dword [ebp + 0x68]
test al, 1
jne 0x1016034a
push 0x101b07d0
jmp 0x1016035c
cmp byte [ebp + 0x126], 3
jne 0x10160365
test al, 2
jne 0x10160365
push 0x101b07b4
push ebp
call fcn.1015e500
add esp, 8
mov eax, dword [esp + 0x14]
or dword [ebp + 0x68], 4
mov dword [ebp + 0x10c], eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb0]
pop ebp
xor ecx, esp
call fcn.1012e3ba
add esp, 0xb0
ret