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

Disassembly:
sub esp, 0x184
push ebx
push ebp
mov ebp, ecx
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], ecx
mov edx, 0x101bde20
mov ecx, dword [esp + 0x190]
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov ecx, dword [ecx]
mov eax, ecx
neg eax
mov dword [esp + 0x24], ebp
test ecx, ecx
mov dword [esp + 0x14], ebx
push esi
cmovns eax, ecx
mov ecx, ebp
movzx eax, ax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x48]
push edi
push eax
call fcn.1003d9b0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x100591ef
mov eax, dword [esp + 0x50]
mov dword [esp + 0x28], eax
cmp eax, 0x774f4632
je 0x100591ea
mov ecx, dword [esp + 0x54]
cmp ecx, dword [ebp + 4]
jne 0x100591ea
mov ax, word [esp + 0x58]
test ax, ax
je 0x100591ea
movzx esi, ax
mov dword [esp + 0x3c], esi
lea eax, [esi + esi*4]
lea eax, [eax*4 + 0x30]
cmp eax, ecx
jae 0x100591ea
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
test edx, edx
jne 0x100591fc
test edi, edi
jne 0x100591ea
cmp dword [esp + 0x6c], edi
je 0x10059207
mov eax, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x184
ret 8
test edi, edi
je 0x10059207
cmp dword [esp + 0x6c], 0
je 0x100591ea
cmp edx, ecx
jae 0x100591ea
mov eax, ecx
sub eax, edx
cmp eax, edi
jb 0x100591ea
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
test edx, edx
jne 0x10059223
test edi, edi
jne 0x100591ea
cmp edx, ecx
jae 0x100591ea
mov eax, ecx
sub eax, edx
cmp eax, edi
jb 0x100591ea
xor eax, eax
mov edx, 0x20
mov dword [esp + 0x14], eax
mov ecx, ebx
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x18]
push eax
push 0
push esi
push 0
call fcn.1003ddd0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x40], eax
test edi, edi
jne 0x10059c61
lea eax, [esp + 0x18]
mov ecx, ebx
push eax
push edi
push esi
push edi
lea edx, [edi + 4]
call fcn.1003ddd0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], eax
test edi, edi
jne 0x10059c5b
mov dword [esp + 0x38], edi
test esi, esi
je 0x1005969f
mov esi, dword [esp + 0x40]
add esi, 4
mov eax, dword [ebp + 0x14]
mov edi, 0x100
mov ecx, dword [ebp + 8]
mov byte [esp + 0x24], 0
mov dword [esp + 0x18], 0
test eax, eax
je 0x100592cf
push 1
lea edx, [esp + 0x28]
push edx
mov edx, ecx
mov ecx, ebp
call eax
cmp eax, 1
jne 0x100596d7
mov al, byte [esp + 0x24]
jmp 0x100592de
cmp ecx, dword [ebp + 4]
jae 0x100596d7
mov eax, dword [ebp]
mov al, byte [ecx + eax]
inc dword [ebp + 8]
lea ecx, [esi - 4]
mov byte [ecx], al
and al, 0x3f
cmp al, 0x3f
jne 0x10059312
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.1003d930
mov edi, dword [esp + 0x18]
mov dword [esi], eax
test edi, edi
jne 0x100596cc
lea ecx, [esi - 4]
mov edi, 0x100
jmp 0x100595e3
mov dword [esp + 0x94], 0x636d6170
mov dword [esp + 0x98], 0x68656164
mov dword [esp + 0x9c], 0x68686561
mov dword [esp + 0xa0], 0x686d7478
mov dword [esp + 0xa4], 0x6d617870
mov dword [esp + 0xa8], 0x6e616d65
mov dword [esp + 0xac], 0x4f532f32
mov dword [esp + 0xb0], 0x706f7374
mov dword [esp + 0xb4], 0x63767420
mov dword [esp + 0xb8], 0x6670676d
mov dword [esp + 0xbc], 0x676c7966
mov dword [esp + 0xc0], 0x6c6f6361
mov dword [esp + 0xc4], 0x70726570
mov dword [esp + 0xc8], 0x43464620
mov dword [esp + 0xcc], 0x564f5247
mov dword [esp + 0xd0], 0x45424454
mov dword [esp + 0xd4], 0x45424c43
mov dword [esp + 0xd8], 0x67617370
mov dword [esp + 0xdc], 0x68646d78
mov dword [esp + 0xe0], 0x6b65726e
mov dword [esp + 0xe4], 0x4c545348
mov dword [esp + 0xe8], 0x50434c54
mov dword [esp + 0xec], 0x56444d58
mov dword [esp + 0xf0], 0x76686561
mov dword [esp + 0xf4], 0x766d7478
mov dword [esp + 0xf8], 0x42415345
mov dword [esp + 0xfc], 0x47444546
mov dword [esp + 0x100], 0x47504f53
mov dword [esp + 0x104], 0x47535542
mov dword [esp + 0x108], 0x45425343
mov dword [esp + 0x10c], 0x4a535446
mov dword [esp + 0x110], 0x4d415448
mov dword [esp + 0x114], 0x43424454
mov dword [esp + 0x118], 0x43424c43
mov dword [esp + 0x11c], 0x434f4c52
mov dword [esp + 0x120], 0x4350414c
mov dword [esp + 0x124], 0x53564720
mov dword [esp + 0x128], 0x73626978
mov dword [esp + 0x12c], 0x61636e74
mov dword [esp + 0x130], 0x61766172
mov dword [esp + 0x134], 0x62646174
mov dword [esp + 0x138], 0x626c6f63
mov dword [esp + 0x13c], 0x62736c6e
mov dword [esp + 0x140], 0x63766172
mov dword [esp + 0x144], 0x66647363
mov dword [esp + 0x148], 0x66656174
mov dword [esp + 0x14c], 0x666d7478
mov dword [esp + 0x150], 0x66766172
mov dword [esp + 0x154], 0x67766172
mov dword [esp + 0x158], 0x68737479
mov dword [esp + 0x15c], 0x6a757374
mov dword [esp + 0x160], 0x6c636172
mov dword [esp + 0x164], 0x6d6f7274
mov dword [esp + 0x168], 0x6d6f7278
mov dword [esp + 0x16c], 0x6f706264
mov dword [esp + 0x170], 0x70726f70
mov dword [esp + 0x174], 0x7472616b
mov dword [esp + 0x178], 0x5a617066
mov dword [esp + 0x17c], 0x53696c66
mov dword [esp + 0x180], 0x476c6174
mov dword [esp + 0x184], 0x476c6f63
mov dword [esp + 0x188], 0x46656174
mov dword [esp + 0x18c], 0x53696c6c
cmp al, 0x3e
ja 0x100596c1
movzx eax, al
mov eax, dword [esp + eax*4 + 0x94]
mov dword [esi], eax
test eax, eax
je 0x100596c7
mov cl, byte [ecx]
xor ebx, ebx
shr cl, 6
cmp eax, 0x676c7966
je 0x10059603
cmp eax, 0x6c6f6361
je 0x10059603
test cl, cl
je 0x10059608
mov ebx, 0x100
jmp 0x10059608
test cl, cl
cmove ebx, edi
movzx eax, cl
lea edx, [esi + 4]
mov ecx, ebp
or ebx, eax
call fcn.100590b0
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x100596cc
mov eax, dword [esi + 4]
lea ecx, [esi + 8]
mov dword [ecx], eax
test ebx, 0x100
je 0x1005965b
mov edx, ecx
mov ecx, ebp
call fcn.100590b0
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x100596cc
cmp dword [esi], 0x6c6f6361
lea ecx, [esi + 8]
jne 0x1005965b
cmp dword [ecx], eax
jne 0x100596c7
mov edx, dword [esp + 0x20]
mov eax, dword [ecx]
lea ecx, [eax + edx]
cmp ecx, edx
jb 0x100596c7
mov dword [esi + 0x10], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x14], eax
lea eax, [esi - 4]
mov dword [esi + 0xc], ebx
add esi, 0x20
mov dword [ecx + edx*4], eax
inc edx
mov dword [esp + 0x38], edx
cmp edx, dword [esp + 0x3c]
jl 0x10059297
mov ebx, dword [esp + 0x1c]
mov eax, ecx
mov esi, dword [esp + 0x3c]
mov eax, dword [eax + esi*4 - 4]
xor esi, esi
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
add eax, ecx
mov dword [esp + 0x78], eax
cmp eax, ecx
jae 0x100596eb
mov ebx, dword [esp + 0x10]
lea edi, [esi + 8]
jmp 0x10059c74
mov dword [esi], 0
mov edi, 8
mov ebx, dword [esp + 0x10]
xor esi, esi
jmp 0x10059c74
mov ebx, dword [esp + 0x10]
mov edi, 0x55
mov byte [esi - 4], 0
xor esi, esi
jmp 0x10059c74
cmp dword [esp + 0x28], 0x74746366
mov eax, 1
mov word [esp + 0x84], ax
jne 0x1005995e
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.1003d930
mov edi, dword [esp + 0x18]
mov dword [esp + 0x80], eax
test edi, edi
jne 0x100596cc
cmp eax, 0x10000
je 0x1005973e
cmp eax, 0x20000
je 0x1005973e
mov ebx, dword [esp + 0x10]
mov edi, 8
xor esi, esi
jmp 0x10059c74
lea edx, [esp + 0x84]
mov ecx, ebp
call fcn.10058fc0
mov edi, eax
test edi, edi
jne 0x1005994a
cmp word [esp + 0x84], si
jne 0x10059779
mov edx, dword [esp + 0x8c]
lea edi, [eax + 8]
mov ebx, dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x14], edx
jmp 0x10059c74
movzx eax, word [esp + 0x84]
test eax, eax
je 0x1005992d
lea esi, [eax + eax*2]
mov ecx, ebx
mov eax, dword [ebx + 4]
shl esi, 2
mov edx, esi
call eax
mov edx, eax
mov edi, 0x40
xor eax, eax
mov dword [esp + 0x14], edx
test edx, edx
cmovne edi, eax
je 0x100597c3
push esi
push eax
push edx
call fcn.1017ea60
mov ebx, dword [esp + 0x20]
add esp, 0xc
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x100597eb
mov dword [esp + 0x18], edi
mov ebx, edx
mov dword [esp + 0x14], edx
test edi, edi
jne 0x10059c6c
xor eax, eax
mov dword [esp + 0x20], eax
movzx eax, word [esp + 0x84]
test eax, eax
je 0x10059935
add ebx, 4
nop
mov edx, ebx
mov ecx, ebp
call fcn.10058fc0
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x10059c6c
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.1003d930
mov edi, dword [esp + 0x18]
mov dword [ebx - 4], eax
test edi, edi
jne 0x10059c6c
movzx eax, word [ebx]
test eax, eax
je 0x1005986d
lea ebp, [eax + eax]
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov edx, ebp
mov eax, dword [eax + 4]
call eax
mov esi, eax
mov edi, 0x40
xor eax, eax
test esi, esi
cmovne edi, eax
je 0x1005985c
push ebp
push eax
push esi
call fcn.1017ea60
add esp, 0xc
mov dword [esp + 0x18], edi
mov dword [ebx + 4], esi
jmp 0x1005987c
mov dword [esp + 0x18], edi
mov dword [ebx + 4], esi
test edi, edi
jne 0x10059c6c
jmp 0x1005987c
mov dword [esp + 0x18], 0
mov dword [ebx + 4], 0
xor eax, eax
mov dword [esp + 0x28], 0
xor esi, esi
xor ebp, ebp
cmp ax, word [ebx]
jae 0x100598ff
nop
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x24]
call fcn.10058fc0
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x10059c6c
mov cx, word [esp + 0x24]
cmp cx, word [esp + 0x58]
jae 0x10059c67
mov eax, dword [ebx + 4]
mov word [eax + ebp*2], cx
mov eax, dword [esp + 0x10]
movzx ecx, cx
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 4]
cmp eax, 0x6c6f6361
jne 0x10059920
mov esi, ecx
mov ecx, dword [esp + 0x28]
movzx eax, word [ebx]
inc ebp
cmp ebp, eax
jb 0x10059890
test ecx, ecx
jne 0x100598ec
test esi, esi
je 0x100598ff
cmp ecx, esi
ja 0x10059c67
sub esi, ecx
cmp esi, 1
jne 0x10059c67
mov esi, dword [esp + 0x20]
add ebx, 0xc
movzx eax, word [esp + 0x84]
inc esi
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x20], esi
cmp esi, eax
jge 0x10059935
jmp 0x100597f0
cmp eax, 0x676c7966
jne 0x100598d8
mov dword [esp + 0x28], ecx
jmp 0x100598dc
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
jmp 0x10059964
mov esi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
jmp 0x10059c74
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x54]
add ecx, 3
add ecx, dword [ebp + 8]
and ecx, 0xfffffffc
cmp ecx, edi
ja 0x10059c67
mov eax, dword [esp + 0x64]
test eax, eax
je 0x10059999
cmp ecx, eax
jne 0x10059c67
mov ecx, dword [esp + 0x68]
add ecx, 3
add ecx, eax
and ecx, 0xfffffffc
mov eax, dword [esp + 0x70]
test eax, eax
je 0x100599b5
cmp ecx, eax
jne 0x10059c67
mov ecx, dword [esp + 0x74]
add ecx, 3
add ecx, eax
and ecx, 0xfffffffc
lea eax, [edi + 3]
and eax, 0xfffffffc
cmp ecx, eax
jne 0x10059c67
mov eax, dword [esp + 0x19c]
movzx ecx, word [esp + 0x84]
mov dword [eax], ecx
mov eax, dword [esp + 0x198]
mov edx, dword [eax]
mov eax, dword [esp + 0x30]
dec eax
test edx, edx
cmovns eax, dword [esp + 0x30]
cmp eax, ecx
jl 0x100599fd
test edx, edx
js 0x100599fb
mov edi, 6
jmp 0x10059c6c
xor eax, eax
test esi, esi
je 0x10059aec
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*2]
lea esi, [ebx + eax*4]
mov edx, 4
lea eax, [esp + 0x18]
push eax
movzx eax, word [esi + 4]
push 0
push eax
push 0
call fcn.1003ddd0
mov edi, dword [esp + 0x18]
mov ebx, eax
test edi, edi
jne 0x10059c6c
movzx ecx, word [esi + 4]
xor edx, edx
mov eax, ecx
cmp di, cx
jae 0x10059a6d
mov ebp, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esi + 8]
movzx eax, word [eax + edx*2]
mov eax, dword [ebp + eax*4]
mov dword [ebx + edx*4], eax
inc edx
movzx ecx, word [esi + 4]
cmp edx, ecx
jl 0x10059a50
mov ebp, dword [esp + 0x2c]
mov eax, ecx
lea ecx, [esp + 0x18]
movzx eax, ax
push ecx
push dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov edx, 4
push eax
movzx eax, word [esp + 0x64]
push eax
call fcn.1003ddd0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], eax
test edi, edi
jne 0x10059c6c
xor ecx, ecx
xor edx, edx
cmp cx, word [esi + 4]
jae 0x10059ac2
mov edi, ebx
mov ecx, eax
sub edi, eax
nop
mov eax, dword [ecx + edi]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
inc edx
movzx eax, word [esi + 4]
cmp edx, eax
jl 0x10059ab0
test ebx, ebx
je 0x10059ad3
mov eax, dword [esp + 0x1c]
mov edx, ebx
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov eax, dword [esi]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], eax
mov ax, word [esi + 4]
mov word [esp + 0x58], ax
jmp 0x10059af1
mov ax, word [esp + 0x58]
mov ecx, dword [esp + 0x5c]
movzx ebx, ax
mov eax, ebx
mov dword [esp + 0x30], ebx
shl eax, 4
mov dword [esp + 0x20], eax
lea esi, [eax + 0xc]
cmp ecx, esi
jbe 0x10059b28
mov eax, ecx
shr eax, 6
cmp eax, edi
jbe 0x10059b1c
mov esi, edi
shl esi, 6
jmp 0x10059b1e
mov esi, ecx
mov eax, 0x4000000
cmp esi, eax
cmovae esi, eax
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
push eax
mov edx, esi
call fcn.1003dd30
mov edi, dword [esp + 0x18]
mov dword [esp + 0x34], eax
test edi, edi
jne 0x10059c6c
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
push eax
lea edx, [edi + 0x28]
call fcn.1003dd30
mov edi, dword [esp + 0x18]
mov dword [esp + 0x48], eax
test edi, edi
jne 0x10059c6c
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
lea edx, [eax + 1]
shr ecx, 0x18
mov byte [eax], cl
mov ecx, dword [esp + 0x28]
mov eax, ecx
shr eax, 0x10
mov byte [edx], al
mov al, byte [esp + 0x50]
shr ecx, 8
mov byte [edx + 1], cl
mov byte [edx + 2], al
cmp word [esp + 0x58], di
je 0x10059bf1
mov eax, ebx
xor ebx, ebx
test eax, eax
je 0x10059ba5
inc ebx
shr eax, 1
jne 0x10059ba0
dec ebx
mov eax, 1
shlx ecx, eax, ebx
mov eax, dword [esp + 0x58]
shr eax, 8
mov byte [edx + 3], al
mov al, byte [esp + 0x58]
shl ecx, 4
sub dword [esp + 0x20], ecx
mov byte [edx + 4], al
mov eax, ecx
shr eax, 8
mov byte [edx + 5], al
mov eax, ebx
shr eax, 8
mov byte [edx + 6], cl
mov ecx, dword [esp + 0x20]
mov byte [edx + 7], al
mov eax, ecx
shr eax, 8
mov byte [edx + 8], bl
mov ebx, dword [esp + 0x30]
mov byte [edx + 9], al
mov byte [edx + 0xa], cl
push 0x10058870
push 4
push ebx
mov ebx, dword [esp + 0x1c]
push ebx
call fcn.1018b510
mov edx, dword [esp + 0x88]
add esp, 0x10
cmp edx, 1
jae 0x10059c19
mov edi, 8
jmp 0x10059c70
cmp edx, esi
jbe 0x10059c24
mov edi, 8
jmp 0x10059c70
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
push eax
call fcn.1003dd30
mov edi, dword [esp + 0x18]
mov dword [esp + 0x44], eax
test edi, edi
jne 0x10059c70
mov edx, dword [esp + 0x60]
mov ecx, ebp
call fcn.1003d6d0
mov edi, eax
test edi, edi
jne 0x10059c70
mov ecx, ebp
lea edi, [eax + 7]
call fcn.1003d7b0
jmp 0x10059c70
mov ebx, eax
xor esi, esi
jmp 0x10059c74
xor ebx, ebx
xor esi, esi
jmp 0x10059c74
mov edi, 8
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
test ebp, ebp
je 0x10059c8b
mov edx, ebp
mov ebp, dword [esp + 0x1c]
mov ecx, ebp
mov eax, dword [ebp + 8]
call eax
jmp 0x10059c8f
mov ebp, dword [esp + 0x1c]
test ebx, ebx
je 0x10059c9c
mov eax, dword [ebp + 8]
mov edx, ebx
mov ecx, ebp
call eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x10059cad
mov edx, eax
mov ecx, ebp
mov eax, dword [ebp + 8]
call eax
test esi, esi
je 0x10059ce8
movzx ebx, word [esp + 0x84]
test ebx, ebx
je 0x10059cdf
add esi, 8
mov edx, dword [esi]
test edx, edx
je 0x10059ccd
mov eax, dword [ebp + 8]
mov ecx, ebp
call eax
mov dword [esi], 0
add esi, 0xc
sub ebx, 1
jne 0x10059cc0
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 8]
mov edx, esi
mov ecx, ebp
call eax
test edi, edi
je 0x10059d5c
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10059cfd
mov edx, eax
mov ecx, ebp
mov eax, dword [ebp + 8]
call eax
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x10059d5c
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x10059d53
cmp eax, fcn.10058840
jne 0x10059d4f
mov edx, dword [ebx]
mov eax, dword [ebx + 0x1c]
test edx, edx
je 0x10059d23
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov dword [ebx + 4], 0
mov edx, ebx
mov dword [ebx], 0
mov ecx, ebp
mov dword [ebx + 0x18], 0
mov esi, dword [ebp + 8]
call esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x184
ret 8
mov ecx, ebx
call eax
mov esi, dword [ebp + 8]
mov edx, ebx
mov ecx, ebp
call esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x184
ret 8