Function at 0x100716e0
Capabilities:
Contain obfuscated stackstrings
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100b78d6
mov eax, dword fs:[0]
push eax
sub esp, 0x180
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x178], eax
push ebx
push esi
push edi
mov eax, dword [section..data]
xor eax, esp
push eax
lea eax, [esp + 0x190]
mov dword fs:[0], eax
mov ebx, edx
mov esi, ecx
mov dword [esp + 0x24], esi
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebp + 8]
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x1007173e
mov edx, dword [ecx + 0x84]
jmp 0x10071740
xor edx, edx
mov eax, dword [edx + 0xc]
sub eax, dword [edx + 8]
sar eax, 2
test ax, ax
je 0x10072206
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x84]
mov dword [esp + 0x2c], 0
mov edx, dword [eax + 0x10]
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
mov dword [esp + 0x1c], edx
test ax, ax
je 0x1007179c
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
test eax, eax
je 0x1007178c
mov eax, dword [ecx + 8]
mov eax, dword [eax]
jmp 0x1007178e
xor eax, eax
mov eax, dword [eax]
cmp edx, dword [eax + 0xc]
jae 0x1007179c
mov edi, 0xffff
jmp 0x100717c2
push 1
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x38]
push eax
push edx
call fcn.10099ab0
test al, al
je 0x10072206
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
cmp edx, dword [ebx + 4]
jae 0x10072206
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x100717da
mov edx, dword [ecx + 0x84]
jmp 0x100717dc
xor edx, edx
mov eax, dword [edx + 0xc]
sub eax, dword [edx + 8]
mov edx, dword [esi]
sar eax, 2
dec eax
mov dword [esp + 0x2c], edx
movzx eax, ax
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x100717ff
mov edx, dword [ecx + 0x84]
jmp 0x10071801
xor edx, edx
movzx esi, ax
mov eax, dword [edx + 0xc]
sub eax, dword [edx + 8]
sar eax, 2
cmp esi, eax
jae 0x10071819
mov eax, dword [edx + 8]
mov eax, dword [eax + esi*4]
jmp 0x1007181b
xor eax, eax
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], eax
test ecx, ecx
je 0x10071830
mov ecx, dword [ecx + 0x84]
jmp 0x10071832
xor ecx, ecx
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
cmp esi, eax
jae 0x10071847
mov eax, dword [ecx + 8]
mov eax, dword [eax + esi*4]
jmp 0x10071849
xor eax, eax
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
cmp dword [esp + 0x1c], eax
jae 0x10072206
cmp eax, 0x5dc0
jb 0x10072206
lea eax, [esp + 0x3c]
mov ecx, ebx
push eax
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x30]
call fcn.10095250
test al, al
je 0x10072206
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x1007189a
mov ecx, dword [ecx + 0x84]
jmp 0x1007189c
xor ecx, ecx
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
cmp word [esp + 0x28], ax
jae 0x10072206
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
cmp esi, eax
jae 0x100718c5
mov eax, dword [ecx + 8]
mov esi, dword [eax + esi*4]
jmp 0x100718c7
xor esi, esi
cmp byte [esi + 0x24], 0
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x30], ecx
jne 0x100718e1
mov ecx, esi
call fcn.10097cc0
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 0x20]
add eax, ecx
mov dword [esp + 0x3c], eax
cmp ecx, eax
ja 0x10072206
lea eax, [esp + 0x44]
mov ecx, ebx
push eax
lea eax, [esp + 0x4c]
push eax
push edi
call fcn.10095250
test al, al
je 0x10072206
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x1007191b
mov ecx, dword [ecx + 0x84]
jmp 0x1007191d
xor ecx, ecx
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
cmp di, ax
jae 0x10072206
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
movzx esi, di
sar eax, 2
cmp esi, eax
jae 0x10071947
mov eax, dword [ecx + 8]
mov esi, dword [eax + esi*4]
jmp 0x10071949
xor esi, esi
cmp byte [esi + 0x24], 0
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
mov dword [esp + 0x44], edi
jne 0x1007195f
mov ecx, esi
call fcn.10097cc0
mov eax, dword [esi + 0x20]
add eax, edi
cmp edi, eax
ja 0x10072206
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x20]
je 0x10072206
mov edx, dword [esp + 0x24]
lea edi, [eax + 0x100]
cmp dword [edx + 4], edi
jb 0x10072206
mov esi, dword [esp + 0x2c]
add esi, eax
mov ecx, esi
mov dword [esp + 0x20], esi
call fcn.1001ca50
cmp eax, 0x50519052
je 0x100719f4
inc esi
mov ecx, esi
call fcn.1001ca50
cmp eax, 0x50519052
je 0x100719f4
mov ecx, dword [esp + 0x20]
call fcn.1001ca50
cmp eax, 0x605589e5
je 0x100719f4
mov ecx, esi
call fcn.1001ca50
cmp eax, 0x605589e5
je 0x100719f4
mov ecx, dword [esp + 0x20]
call fcn.1001ca50
cmp eax, 0x50515253
je 0x100719f4
mov ecx, esi
call fcn.1001ca50
cmp eax, 0x50515253
jne 0x10072206
mov eax, dword [ebx + 0x14]
mov byte [esp + 0x1b], 0
mov byte [esp + 0x12], 0
mov byte [esp + 0x13], 0
test eax, eax
je 0x10071a12
mov ecx, dword [eax + 0x84]
jmp 0x10071a14
xor ecx, ecx
push dword [esp + 0x28]
call fcn.100955a0
lea ecx, [esp + 0xac]
push dword [eax]
call fcn.10093bd0
mov dword [esp + 0x198], 0
lea ecx, [esp + 0xc4]
push 0x100bf2c6
call fcn.10093bd0
mov byte [esp + 0x198], 1
mov edx, str..data
lea ecx, [esp + 0xac]
mov dword [esp + 0x114], 0x160000c
mov dword [esp + 0x118], 0x3890255
mov dword [esp + 0x11c], 0x58304e5
mov dword [esp + 0x120], 0x75806ec
mov dword [esp + 0x124], 0x9560853
mov dword [esp + 0x128], 0xb310a57
mov byte [esp + 0x12c], 0xf6
mov dword [esp + 0x130], 0x1c70011
mov dword [esp + 0x134], 0x3fc0245
mov dword [esp + 0x138], 0x5000403
mov dword [esp + 0x13c], 0x7000600
mov dword [esp + 0x140], 0x91408eb
mov dword [esp + 0x144], 0xb450a8b
mov dword [esp + 0x148], 0xd030cfc
mov dword [esp + 0x14c], 0xfec0e45
mov word [esp + 0x150], 0x100f
mov byte [esp + 0x152], 0xb6
mov dword [esp + 0x154], 0x1600019
mov dword [esp + 0x158], 0x3890255
mov dword [esp + 0x15c], 0x58304e5
mov dword [esp + 0x160], 0x75806ec
mov dword [esp + 0x164], 0x9560853
mov dword [esp + 0x168], 0xb310a57
mov dword [esp + 0x16c], 0xdbf0cf6
mov dword [esp + 0x170], 0xf000e06
mov dword [esp + 0x174], 0x11001000
mov dword [esp + 0x178], 0x13651283
mov dword [esp + 0x17c], 0x150014e4
mov dword [esp + 0x180], 0x174516c7
mov word [esp + 0x184], 0x18ec
mov byte [esp + 0x186], 0xd0
mov dword [esp + 0xec], 0x1500004
mov dword [esp + 0xf0], 0x3900251
mov byte [esp + 0xf4], 0x52
mov dword [esp + 0xdc], 0x1600006
mov dword [esp + 0xe0], 0x3890255
mov dword [esp + 0xe4], 0x58304e5
mov byte [esp + 0xe8], 0xec
mov dword [esp + 0xf8], 0x150000d
mov dword [esp + 0xfc], 0x3520251
mov dword [esp + 0x100], 0x5540453
mov dword [esp + 0x104], 0x7560655
mov dword [esp + 0x108], 0x9550857
mov dword [esp + 0x10c], 0xbe50a89
mov word [esp + 0x110], 0xc83
mov byte [esp + 0x112], 0xec
call fcn.1009c680
test al, al
jne 0x10071c5e
mov edx, str.data
lea ecx, [esp + 0xac]
call fcn.1009c680
test al, al
je 0x10071c63
mov byte [esp + 0x13], 1
mov edx, str..PACK
lea ecx, [esp + 0xac]
call fcn.1009c680
test al, al
jne 0x10071c8d
mov edx, str.PACK
lea ecx, [esp + 0xac]
call fcn.1009c680
test al, al
je 0x10071c92
mov byte [esp + 0x1b], 1
mov edx, str..UPX0
lea ecx, [esp + 0xac]
call fcn.1009c680
test al, al
jne 0x10071cfc
mov edx, str.UPX0
lea ecx, [esp + 0xac]
call fcn.1009c680
test al, al
jne 0x10071cfc
cmp byte [esp + 0x13], al
jne 0x10071d01
cmp byte [esp + 0x1b], al
jne 0x10071d01
xor esi, esi
mov byte [esp + 0x198], 0
lea ecx, [esp + 0xc4]
call fcn.10093c30
mov dword [esp + 0x198], 0xffffffff
lea ecx, [esp + 0xac]
call fcn.10093c30
mov eax, esi
jmp 0x10072208
mov byte [esp + 0x12], 1
mov esi, dword [ebx + 0x14]
test esi, esi
je 0x10071d10
mov ecx, dword [esi + 0x84]
jmp 0x10071d12
xor ecx, ecx
mov ebx, dword [esp + 0x28]
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x20000000
je 0x10071cc8
test esi, esi
je 0x10071d33
mov ecx, dword [esi + 0x84]
jmp 0x10071d35
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x40000000
je 0x10071cc8
test esi, esi
je 0x10071d52
mov ecx, dword [esi + 0x84]
jmp 0x10071d54
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x80000000
je 0x10071cc8
cmp byte [esp + 0x1b], 0
je 0x10071e4e
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xec]
push 4
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
add eax, dword [esp + 0x20]
push eax
call fcn.1001cbe0
test al, al
je 0x10071cc8
test esi, esi
je 0x10071da9
mov ecx, dword [esi + 0x84]
jmp 0x10071dab
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x20000000
je 0x10071cc8
test esi, esi
je 0x10071dcc
mov ecx, dword [esi + 0x84]
jmp 0x10071dce
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x40000000
je 0x10071cc8
test esi, esi
je 0x10071def
mov ecx, dword [esi + 0x84]
jmp 0x10071df1
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x80000000
je 0x10071cc8
mov eax, dword [esp + 0x38]
cmp eax, 0x68000
je 0x10071e31
cmp eax, 0x5f000
je 0x10071e31
cmp eax, 0x62000
je 0x10071e31
cmp eax, 0x69000
je 0x10071e31
cmp eax, 0x61000
jne 0x10071cc8
mov eax, dword [esp + 0x34]
cmp eax, 0x28000
je 0x10071e4e
cmp eax, 0x24000
je 0x10071e4e
cmp eax, 0x25000
jne 0x10071cc8
cmp byte [esp + 0x12], 0
je 0x10071fe9
mov eax, dword [esp + 0x20]
mov bl, byte [eax]
cmp bl, 0x60
je 0x10071e87
cmp bl, 0x50
je 0x10071e7c
mov al, byte [eax + 1]
cmp al, 0x60
je 0x10071e78
cmp al, 0x50
jne 0x10071cc8
mov eax, dword [esp + 0x20]
cmp bl, 0x60
je 0x10071e87
cmp byte [eax + 1], 0x60
jne 0x10071edc
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xdc]
push 6
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
add eax, dword [esp + 0x20]
push eax
call fcn.1001cbe0
test al, al
jne 0x10071ed8
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
inc ecx
push 6
mov eax, dword [edx]
add eax, ecx
lea ecx, [esp + 0xe0]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x18]
push eax
call fcn.1001cbe0
test al, al
je 0x10071cc8
mov eax, dword [esp + 0x20]
cmp bl, 0x50
je 0x10071ee7
cmp byte [eax + 1], 0x50
jne 0x10071f34
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xf8]
push 0xd
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x18]
mov ebx, dword [eax]
mov eax, dword [esp + 0x20]
add eax, ebx
push eax
call fcn.1001cbe0
test al, al
jne 0x10071f34
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0xf8]
inc eax
mov dword [esp + 0x14], ecx
add eax, ebx
lea ecx, [esp + 0x14]
push 0xd
push eax
call fcn.1001cbe0
test al, al
je 0x10071cc8
mov eax, dword [esp + 0x38]
add eax, 0xfffd0000
cmp eax, 0x32000
ja 0x10071cc8
mov eax, dword [esp + 0x34]
add eax, 0xfffe7000
cmp eax, 0x47000
ja 0x10071cc8
test esi, esi
je 0x10071f68
mov ecx, dword [esi + 0x84]
jmp 0x10071f6a
xor ecx, ecx
mov ebx, dword [esp + 0x28]
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x20000000
je 0x10071cc8
test esi, esi
je 0x10071f8f
mov ecx, dword [esi + 0x84]
jmp 0x10071f91
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x40000000
je 0x10071cc8
test esi, esi
je 0x10071fb2
mov ecx, dword [esi + 0x84]
jmp 0x10071fb4
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x80000000
je 0x10071cc8
test esi, esi
je 0x10071fd5
mov ecx, dword [esi + 0x84]
jmp 0x10071fd7
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test byte [eax + 0x24], 0x20
je 0x10071cc8
cmp byte [esp + 0x13], 0
je 0x10072115
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x114]
push 0xc
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x18]
mov ebx, dword [eax]
mov eax, dword [esp + 0x20]
add eax, ebx
push eax
call fcn.1001cbe0
test al, al
je 0x10071cc8
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x130]
add eax, 0x42
mov dword [esp + 0x14], ecx
add eax, ebx
lea ecx, [esp + 0x14]
push 0x11
push eax
call fcn.1001cbe0
test al, al
je 0x10071cc8
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x154]
add eax, ebx
mov dword [esp + 0x14], ecx
push 0x19
push eax
lea ecx, [esp + 0x1c]
call fcn.1001cbe0
test al, al
je 0x10071cc8
test esi, esi
je 0x10072078
mov ecx, dword [esi + 0x84]
jmp 0x1007207a
xor ecx, ecx
mov ebx, dword [esp + 0x28]
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x20000000
je 0x10071cc8
test esi, esi
je 0x1007209f
mov ecx, dword [esi + 0x84]
jmp 0x100720a1
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x40000000
je 0x10071cc8
test esi, esi
je 0x100720c2
mov ecx, dword [esi + 0x84]
jmp 0x100720c4
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test dword [eax + 0x24], 0x80000000
je 0x10071cc8
test esi, esi
je 0x100720e5
mov ecx, dword [esi + 0x84]
jmp 0x100720e7
xor ecx, ecx
push ebx
call fcn.100955a0
mov eax, dword [eax]
test byte [eax + 0x24], 0x20
je 0x10071cc8
cmp dword [esp + 0x38], 0x3f000
jne 0x10071cc8
cmp dword [esp + 0x34], 0x1a000
jne 0x10071cc8
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x4c]
mov esi, dword [esp + 0x1c]
push esi
push dword [eax + 4]
push dword [eax]
call fcn.1001d150
push edi
lea ecx, [esp + 0x50]
call fcn.1001d110
lea eax, [esi + 0x300]
mov byte [esp + 0x12], 0
cmp edi, eax
jae 0x100721d6
mov ebx, 0x100
mov edi, edi
lea edx, [esp + 0x13]
lea ecx, [esp + 0x4c]
call fcn.100ae1f0
mov esi, eax
test esi, esi
je 0x10071cc8
mov eax, dword [esp + 0x2c]
movzx ecx, byte [edi + eax]
movzx edx, byte [edi + eax + 1]
imul cx, bx
add dx, cx
mov ecx, 0xc9e9
movzx eax, dx
cmp ax, cx
jne 0x100721c3
mov eax, dword [esp + 0x40]
mov ebx, edi
sub ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
add ebx, 6
mov dword [eax], ebx
mov ecx, dword [edi + edx + 2]
test ecx, ecx
js 0x100721be
mov eax, edi
sub eax, dword [esp + 0x48]
add eax, 6
add eax, dword [esp + 0x44]
add eax, ecx
cmp dword [esp + 0x30], eax
ja 0x100721be
cmp eax, dword [esp + 0x3c]
jbe 0x100721e2
mov ebx, 0x100
mov eax, dword [esp + 0x1c]
add edi, esi
add eax, 0x300
cmp edi, eax
jb 0x10072150
mov al, byte [esp + 0x12]
movzx esi, al
jmp 0x10071cca
lea ecx, [edx - 5]
add ecx, edi
call fcn.1001ca50
cmp eax, 0x45c05f5e
jne 0x100721fc
mov ecx, dword [esp + 0x40]
lea eax, [ebx + 3]
mov dword [ecx], eax
mov al, 1
movzx esi, al
jmp 0x10071cca
xor eax, eax
mov ecx, dword [esp + 0x190]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x178]
xor ecx, esp
call fcn.100b37df
mov esp, ebp
pop ebp
ret