Function at 0x10058130
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
mov eax, dword [0x100b7040]
xor eax, esp
mov dword [esp + 0xa4], eax
mov byte [esp + 0x24], 0x6b
mov dl, 0x1f
xor dl, byte [esp + 0x24]
mov al, 9
xor al, byte [esp + 0x24]
mov dh, 7
mov byte [esp + 0x25], al
mov ah, 5
mov byte [esp + 0x26], dl
xorps xmm0, xmm0
mov dl, byte [esp + 0x24]
mov byte [esp + 3], 4
xor ah, dl
mov al, byte [esp + 3]
xor dh, dl
xor al, dl
mov byte [esp + 0x22], 0x18
mov byte [esp + 0x2b], al
mov al, byte [esp + 0x22]
push esi
mov esi, ecx
mov byte [esp + 0x25], 0xe
xor al, dl
mov byte [esp + 0x32], 0
mov cl, 0x34
mov byte [esp + 0x30], al
mov al, byte [esp + 0x25]
mov ch, 8
xor cl, dl
mov byte [esp + 0x2e], dh
xor ch, dl
mov byte [esp + 0x2c], cl
mov byte [esp + 0x2d], ch
xor al, dl
lea ecx, [esp + 0x29]
mov byte [esp + 0x2b], ah
push edi
mov byte [esp + 0x35], al
lea edx, [ecx + 1]
mov byte [esp + 0x36], 0
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100581f0
sub ecx, edx
lea eax, [esp + 0x2d]
push ecx
push eax
lea ecx, [esp + 0x88]
call fcn.10002540
cmp dword [esp + 0x90], 0
mov eax, dword [esi]
mov edi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov dword [esp + 0x14], eax
je 0x100582c5
test eax, eax
je 0x100582c5
push 4
push eax
call edi
test eax, eax
jne 0x100582c5
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc4]
mov dword [esp + 0x3c], edx
mov eax, dword [edx]
mov dword [esp + 0x10], eax
cmp eax, edx
je 0x100582c5
cmp eax, dword [ecx + 0xc4]
jne 0x10058263
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x100582a0
cmp dword [ecx + 0x78], 0x10
lea edx, [ecx + 0x64]
jb 0x10058279
mov edx, dword [edx]
cmp dword [esp + 0x94], 0xf
lea eax, [esp + 0x80]
cmova eax, dword [esp + 0x80]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x100582fe
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0xc4]
jne 0x100582b9
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x3c]
jne 0x10058252
xor eax, eax
mov ecx, dword [esp + 0x94]
mov dword [esi + 4], eax
cmp ecx, 0xf
jbe 0x1005830e
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10058304
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100597eb
jmp 0x10058304
mov eax, dword [esp + 0xc]
jmp 0x100582c7
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov cl, 0x6c
mov dword [esp + 0x18], 0x31e0b6c
mov dword [esp + 0x1c], 0xf331c19
xor eax, eax
mov dword [esp + 0x20], 0x9180203
mov word [esp + 0x24], 0x1802
mov byte [esp + 0x26], 0
xor byte [esp + eax + 0x19], cl
inc eax
cmp eax, 0xd
jae 0x10058346
mov cl, byte [esp + 0x18]
jmp 0x10058336
xorps xmm0, xmm0
mov byte [esp + 0x26], 0
lea ecx, [esp + 0x19]
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
lea edx, [ecx + 1]
mov dword [esp + 0x94], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10058373
sub ecx, edx
lea eax, [esp + 0x19]
push ecx
push eax
lea ecx, [esp + 0x88]
call fcn.10002540
cmp dword [esp + 0x90], 0
mov eax, dword [esi]
mov dword [esp + 0x14], eax
je 0x10058443
test eax, eax
je 0x10058443
push 4
push eax
call edi
test eax, eax
jne 0x10058443
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc4]
mov dword [esp + 0xc], edx
mov eax, dword [edx]
mov dword [esp + 0x10], eax
cmp eax, edx
je 0x10058443
nop
cmp eax, dword [ecx + 0xc4]
jne 0x100583e1
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x1005841e
cmp dword [ecx + 0x78], 0x10
lea edx, [ecx + 0x64]
jb 0x100583f7
mov edx, dword [edx]
cmp dword [esp + 0x94], 0xf
lea eax, [esp + 0x80]
cmova eax, dword [esp + 0x80]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x1005847c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0xc4]
jne 0x10058437
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jne 0x100583d0
xor eax, eax
mov ecx, dword [esp + 0x94]
mov dword [esi + 8], eax
cmp ecx, 0xf
jbe 0x1005848c
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10058482
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100597f0
jmp 0x10058482
mov eax, dword [esp + 0x3c]
jmp 0x10058445
push ecx
push edx
call fcn.1007fa46
add esp, 8
xor al, al
mov byte [esp + 0xb], al
movzx eax, al
mov cl, 0x36
push eax
mov dword [esp + 0x30], 0x424e4236
xor eax, eax
mov dword [esp + 0x34], 0x53535869
mov dword [esp + 0x38], 0x52136952
mov byte [esp + 0x3c], 0
xor byte [esp + eax + 0x31], cl
inc eax
cmp eax, 0xb
jae 0x100584c7
mov cl, byte [esp + 0x30]
jmp 0x100584b7
sub esp, 0x18
mov byte [esp + 0x54], 0
mov edx, esp
lea ecx, [esp + 0x49]
xorps xmm0, xmm0
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100584f0
sub ecx, dword [esp + 0x28]
lea eax, [esp + 0x49]
push ecx
push eax
mov ecx, edx
call fcn.10002540
lea eax, [esp + 0x84]
push eax
call fcn.1000ae50
mov ecx, dword [esi + 8]
add esp, 0x20
mov edx, eax
call fcn.10017d20
movzx ecx, byte [esp + 0xb]
lea ecx, [ecx + ecx*2]
mov dword [esi + ecx*4 + 0x10], eax
mov ecx, dword [esp + 0x7c]
cmp ecx, 0xf
jbe 0x10058564
mov edx, dword [esp + 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005855a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100597eb
push ecx
push edx
call fcn.1007fa46
add esp, 8
movzx eax, byte [esp + 0xb]
mov cl, 0xf
push eax
mov dword [esp + 0x1c], 0x6a7d6e0f
xor eax, eax
mov dword [esp + 0x20], 0x6a61506e
mov dword [esp + 0x24], 0x2a506b6a
mov word [esp + 0x28], 0x6b
nop dword [eax]
xor byte [esp + eax + 0x1d], cl
inc eax
cmp eax, 0xc
jae 0x100585a0
mov cl, byte [esp + 0x1c]
jmp 0x10058590
sub esp, 0x18
mov byte [esp + 0x41], 0
mov edx, esp
lea ecx, [esp + 0x35]
xorps xmm0, xmm0
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100585d0
sub ecx, dword [esp + 0x28]
lea eax, [esp + 0x35]
push ecx
push eax
mov ecx, edx
call fcn.10002540
lea eax, [esp + 0x84]
push eax
call fcn.1000ae50
mov ecx, dword [esi + 8]
add esp, 0x20
mov edx, eax
call fcn.10017d20
movzx ecx, byte [esp + 0xb]
lea ecx, [ecx + ecx*2]
mov dword [esi + ecx*4 + 0x14], eax
mov ecx, dword [esp + 0x7c]
cmp ecx, 0xf
jbe 0x10058644
mov edx, dword [esp + 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005863a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100597eb
push ecx
push edx
call fcn.1007fa46
add esp, 8
call fcn.10012db0
mov edx, eax
test edx, edx
je 0x1005887f
movzx ecx, byte [esp + 0xb]
inc ecx
lea eax, [ecx + ecx*2]
mov dword [esp + 0x10], eax
mov dword [esi + eax*4], edx
call fcn.10018040
mov edx, dword [0x100ae57c]
mov ecx, eax
call edx
mov edx, eax
test edx, edx
je 0x1005887f
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + eax*4]
mov dword [ecx], edx
mov eax, dword [esi + eax*4]
mov edx, dword [esi]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x100586c2
push 4
push eax
call edi
test eax, eax
jne 0x100586c2
mov eax, dword [esp + 0x14]
test eax, eax
je 0x100586c2
push 4
push eax
call edi
test eax, eax
jne 0x100586c2
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esp + 0x10]
mov eax, dword [esi + eax*4]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x10058710
push 4
push eax
call edi
test eax, eax
jne 0x10058710
mov ecx, dword [esp + 0xc]
sub esp, 0x20
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x3f340000
mov dword [esp + 8], 0x3f340000
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [0x100ae58c]
movzx eax, byte [esp + 0xb]
inc eax
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x1005874f
push 4
push eax
call edi
test eax, eax
jne 0x1005874f
mov eax, dword [esp + 0xc]
add eax, 0xcc
push 4
push eax
mov dword [esp + 0x14], eax
call edi
test eax, eax
jne 0x1005874f
mov eax, dword [esp + 0xc]
mov dword [eax], 0xb
movzx eax, byte [esp + 0xb]
inc eax
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x1005877d
push 4
push eax
call edi
test eax, eax
jne 0x1005877d
mov ecx, dword [esp + 0xc]
push 0x110
call dword [0x100ae558]
movzx eax, byte [esp + 0xb]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
lea eax, [eax + eax*2]
mov dword [esp + 0x40], 0
mov eax, dword [esi + eax*4 + 0x14]
mov dword [esp + 0xc], eax
test eax, eax
je 0x100587e6
push 4
push eax
call edi
test eax, eax
jne 0x100587e6
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xdc]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0xe0]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0xe4]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0xe8]
mov dword [esp + 0x4c], eax
movzx eax, byte [esp + 0xb]
movaps xmm0, xmmword [esp + 0x40]
inc eax
movaps xmmword [esp + 0x80], xmm0
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x10058824
push 4
push eax
call edi
test eax, eax
jne 0x10058824
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x80]
push eax
call dword [0x100ae588]
movzx eax, byte [esp + 0xb]
inc eax
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x10058855
push 4
push eax
call edi
test eax, eax
jne 0x10058855
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x80]
push eax
call dword [0x100ae538]
movzx eax, byte [esp + 0xb]
inc eax
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x1005887f
push 4
push eax
call edi
test eax, eax
jne 0x1005887f
mov ecx, dword [esp + 0xc]
push eax
call dword [0x100ae54c]
mov al, byte [esp + 0xb]
inc al
mov byte [esp + 0xb], al
cmp al, 5
jb 0x10058492
mov cl, 0x33
mov dword [esp + 0x18], 0x41474033
mov dword [esp + 0x1c], 0x5e56416c
xor eax, eax
mov dword [esp + 0x20], 0x5a5d5a52
mov word [esp + 0x24], 0x545d
mov byte [esp + 0x26], 0
nop dword [eax]
xor byte [esp + eax + 0x19], cl
inc eax
cmp eax, 0xd
jae 0x100588d0
mov cl, byte [esp + 0x18]
jmp 0x100588c0
xorps xmm0, xmm0
mov byte [esp + 0x26], 0
lea ecx, [esp + 0x19]
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
lea edx, [ecx + 1]
mov dword [esp + 0x94], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10058900
sub ecx, edx
lea eax, [esp + 0x19]
push ecx
push eax
lea ecx, [esp + 0x88]
call fcn.10002540
cmp dword [esp + 0x90], 0
mov eax, dword [esi]
mov dword [esp + 0x14], eax
je 0x100589d3
test eax, eax
je 0x100589d3
push 4
push eax
call edi
test eax, eax
jne 0x100589d3
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc4]
mov dword [esp + 0xc], edx
mov eax, dword [edx]
mov dword [esp + 0x10], eax
cmp eax, edx
je 0x100589d3
nop dword [eax]
cmp eax, dword [ecx + 0xc4]
jne 0x10058971
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x100589ae
cmp dword [ecx + 0x78], 0x10
lea edx, [ecx + 0x64]
jb 0x10058987
mov edx, dword [edx]
cmp dword [esp + 0x94], 0xf
lea eax, [esp + 0x80]
cmova eax, dword [esp + 0x80]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10058a0c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0xc4]
jne 0x100589c7
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jne 0x10058960
xor eax, eax
mov ecx, dword [esp + 0x94]
mov dword [esi + 0x48], eax
cmp ecx, 0xf
jbe 0x10058a1c
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10058a12
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100597f5
jmp 0x10058a12
mov eax, dword [esp + 0x3c]
jmp 0x100589d5
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov cl, 0x15
mov dword [esp + 0x18], 0x7a677215
mov dword [esp + 0x1c], 0x714a6560
xor eax, eax
mov dword [esp + 0x20], 0x7c746170
mov word [esp + 0x24], 0x79
nop
xor byte [esp + eax + 0x19], cl
inc eax
cmp eax, 0xc
jae 0x10058a50
mov cl, byte [esp + 0x18]
jmp 0x10058a40
xorps xmm0, xmm0
mov byte [esp + 0x25], 0
lea ecx, [esp + 0x19]
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
lea edx, [ecx + 1]
mov dword [esp + 0x94], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10058a80
sub ecx, edx
lea eax, [esp + 0x19]
push ecx
push eax
lea ecx, [esp + 0x88]
call fcn.10002540
cmp dword [esp + 0x90], 0
mov eax, dword [esi]
mov dword [esp + 0x14], eax
je 0x10058b53
test eax, eax
je 0x10058b53
push 4
push eax
call edi
test eax, eax
jne 0x10058b53
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc4]
mov dword [esp + 0xc], edx
mov eax, dword [edx]
mov dword [esp + 0x10], eax
cmp eax, edx
je 0x10058b53
nop dword [eax]
cmp eax, dword [ecx + 0xc4]
jne 0x10058af1
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x10058b2e
cmp dword [ecx + 0x78], 0x10
lea edx, [ecx + 0x64]
jb 0x10058b07
mov edx, dword [edx]
cmp dword [esp + 0x94], 0xf
lea eax, [esp + 0x80]
cmova eax, dword [esp + 0x80]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10058b8c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0xc4]
jne 0x10058b47
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jne 0x10058ae0
xor eax, eax
mov ecx, dword [esp + 0x94]
mov dword [esi + 0x4c], eax
cmp ecx, 0xf
jbe 0x10058b9c
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10058b92
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100597fa
jmp 0x10058b92
mov eax, dword [esp + 0x3c]
jmp 0x10058b55
push ecx
push edx
call fcn.1007fa46
add esp, 8
movaps xmm0, xmmword [0x100af9e0]
xor ecx, ecx
movups xmmword [esp + 0x80], xmm0
mov byte [esp + 0x90], 0
nop word [eax + eax]
mov al, byte [esp + 0x80]
xor byte [esp + ecx + 0x81], al
inc ecx
cmp ecx, 0xf
jb 0x10058bc0
xorps xmm0, xmm0
mov byte [esp + 0x90], 0
lea ecx, [esp + 0x81]
movaps xmmword [esp + 0x40], xmm0
mov dword [esp + 0x50], 0
lea edx, [ecx + 1]
mov dword [esp + 0x54], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10058c00
sub ecx, edx
lea eax, [esp + 0x81]
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.10002540
cmp dword [esp + 0x50], 0
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x14], eax
je 0x10058cca
test eax, eax
je 0x10058cca
push 4
push eax
call edi
test eax, eax
jne 0x10058cca
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc4]
mov dword [esp + 0xc], edx
mov eax, dword [edx]
mov dword [esp + 0x10], eax
cmp eax, edx
je 0x10058cca
nop word [eax + eax]
cmp eax, dword [ecx + 0xc4]
jne 0x10058c71
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x10058ca5
cmp dword [ecx + 0x78], 0x10
lea edx, [ecx + 0x64]
jb 0x10058c87
mov edx, dword [edx]
cmp dword [esp + 0x54], 0xf
lea eax, [esp + 0x40]
cmova eax, dword [esp + 0x40]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10058cfd
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0xc4]
jne 0x10058cbe
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jne 0x10058c60
xor eax, eax
mov ecx, dword [esp + 0x54]
mov dword [esi + 0x50], eax
cmp ecx, 0xf
jbe 0x10058d0d
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10058d03
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100597ff
jmp 0x10058d03
mov eax, dword [esp + 0x3c]
jmp 0x10058ccc
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov cl, 0x33
mov byte [esp + 0x2c], 0x47
mov ch, cl
mov byte [esp + 0x29], 0x24
xor cl, byte [esp + 0x2c]
mov al, 0x34
xor al, byte [esp + 0x2c]
mov dl, 0x35
mov byte [esp + 0x2d], al
mov dh, 0x2e
mov al, byte [esp + 0x29]
mov ah, 0x18
mov byte [esp + 0x2e], cl
xorps xmm0, xmm0
mov cl, byte [esp + 0x2c]
xor al, cl
mov byte [esp + 0x2a], 0x2c
mov byte [esp + 0x33], al
xor dl, cl
mov al, byte [esp + 0x2a]
xor dh, cl
xor al, cl
mov byte [esp + 0xb], 0x22
mov byte [esp + 0x34], al
xor ah, cl
mov al, byte [esp + 0xb]
xor al, cl
mov byte [esp + 0x2b], ch
xor ch, cl
mov byte [esp + 0x35], al
mov al, byte [esp + 0x2b]
xor al, cl
mov byte [esp + 0x31], ch
lea ecx, [esp + 0x2d]
mov byte [esp + 0x37], 0
mov byte [esp + 0x2f], dl
mov byte [esp + 0x32], dh
lea edx, [ecx + 1]
mov byte [esp + 0x30], ah
mov byte [esp + 0x36], al
mov byte [esp + 0x37], 0
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10058db7
sub ecx, edx
lea eax, [esp + 0x2d]
push ecx
push eax
lea ecx, [esp + 0x88]
call fcn.10002540
cmp dword [esp + 0x90], 0
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x14], eax
je 0x10058e87
test eax, eax
je 0x10058e87
push 4
push eax
call edi
test eax, eax
jne 0x10058e87
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc4]
mov dword [esp + 0xc], edx
mov eax, dword [edx]
mov dword [esp + 0x10], eax
cmp eax, edx
je 0x10058e87
cmp eax, dword [ecx + 0xc4]
jne 0x10058e25
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x10058e62
cmp dword [ecx + 0x78], 0x10
lea edx, [ecx + 0x64]
jb 0x10058e3b
mov edx, dword [edx]
cmp dword [esp + 0x94], 0xf
lea eax, [esp + 0x80]
cmova eax, dword [esp + 0x80]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10058ec0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0xc4]
jne 0x10058e7b
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jne 0x10058e14
xor eax, eax
mov ecx, dword [esp + 0x94]
mov dword [esi + 0x54], eax
cmp ecx, 0xf
jbe 0x10058ed0
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10058ec6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10059804
jmp 0x10058ec6
mov eax, dword [esp + 0x3c]
jmp 0x10058e89
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov byte [esp + 0x2c], 0x14
mov cl, 0x60
xor cl, byte [esp + 0x2c]
mov al, 0x67
xor al, byte [esp + 0x2c]
mov ch, 0x77
mov byte [esp + 0x2d], al
mov dl, 0x66
mov byte [esp + 0x2e], cl
mov dh, 0x7c
mov cl, byte [esp + 0x2c]
mov ah, 0x4b
mov byte [esp + 0x2b], 0x75
xor dl, cl
mov al, byte [esp + 0x2b]
xor ch, cl
xor al, cl
mov byte [esp + 0x29], 0x7a
mov byte [esp + 0x33], al
xor dh, cl
mov al, byte [esp + 0x29]
xor ah, cl
xor al, cl
mov byte [esp + 0x2a], 0x73
mov byte [esp + 0x34], al
xorps xmm0, xmm0
mov al, byte [esp + 0x2a]
xor al, cl
mov byte [esp + 0xb], 0x71
mov byte [esp + 0x35], al
mov al, byte [esp + 0xb]
xor al, cl
mov byte [esp + 0x31], ch
lea ecx, [esp + 0x2d]
mov byte [esp + 0x37], 0
mov byte [esp + 0x2f], dl
mov byte [esp + 0x32], dh
lea edx, [ecx + 1]
mov byte [esp + 0x30], ah
mov byte [esp + 0x36], al
mov byte [esp + 0x37], 0
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10058f80
sub ecx, edx
lea eax, [esp + 0x2d]
push ecx
push eax
lea ecx, [esp + 0x88]
call fcn.10002540
cmp dword [esp + 0x90], 0
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x14], eax
je 0x10059053
test eax, eax
je 0x10059053
push 4
push eax
call edi
test eax, eax
jne 0x10059053
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc4]
mov dword [esp + 0xc], edx
mov eax, dword [edx]
mov dword [esp + 0x10], eax
cmp eax, edx
je 0x10059053
nop dword [eax]
cmp eax, dword [ecx + 0xc4]
jne 0x10058ff1
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x1005902e
cmp dword [ecx + 0x78], 0x10
lea edx, [ecx + 0x64]
jb 0x10059007
mov edx, dword [edx]
cmp dword [esp + 0x94], 0xf
lea eax, [esp + 0x80]
cmova eax, dword [esp + 0x80]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x1005908c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0xc4]
jne 0x10059047
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jne 0x10058fe0
xor eax, eax
mov ecx, dword [esp + 0x94]
mov dword [esi + 0x58], eax
cmp ecx, 0xf
jbe 0x1005909c
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059092
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10059809
jmp 0x10059092
mov eax, dword [esp + 0x3c]
jmp 0x10059055
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov byte [esp + 0x2c], 0x45
mov cl, 0x31
xor cl, byte [esp + 0x2c]
mov al, 0x27
xor al, byte [esp + 0x2c]
mov dl, 0x2b
mov byte [esp + 0x2d], al
mov ch, 0x2f
mov byte [esp + 0x2e], cl
mov dh, 0x2a
mov cl, byte [esp + 0x2c]
mov ah, 0x1a
mov byte [esp + 0x2b], 0x2c
xor ch, cl
mov al, byte [esp + 0x2b]
xor dh, cl
xor al, cl
mov byte [esp + 0x29], dl
xor dl, cl
mov byte [esp + 0x33], al
mov al, byte [esp + 0x29]
xor ah, cl
xor al, cl
mov byte [esp + 0x31], ch
xorps xmm0, xmm0
mov byte [esp + 0x35], 0
lea ecx, [esp + 0x2d]
mov byte [esp + 0x2f], dl
mov byte [esp + 0x32], dh
lea edx, [ecx + 1]
mov byte [esp + 0x30], ah
mov byte [esp + 0x34], al
mov byte [esp + 0x35], 0
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10059128
sub ecx, edx
lea eax, [esp + 0x2d]
push ecx
push eax
lea ecx, [esp + 0x88]
call fcn.10002540
cmp dword [esp + 0x90], 0
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x14], eax
je 0x100591f8
test eax, eax
je 0x100591f8
push 4
push eax
call edi
test eax, eax
jne 0x100591f8
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc4]
mov dword [esp + 0xc], edx
mov eax, dword [edx]
mov dword [esp + 0x10], eax
cmp eax, edx
je 0x100591f8
cmp eax, dword [ecx + 0xc4]
jne 0x10059196
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x100591d3
cmp dword [ecx + 0x78], 0x10
lea edx, [ecx + 0x64]
jb 0x100591ac
mov edx, dword [edx]
cmp dword [esp + 0x94], 0xf
lea eax, [esp + 0x80]
cmova eax, dword [esp + 0x80]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10059231
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0xc4]
jne 0x100591ec
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jne 0x10059185
xor eax, eax
mov ecx, dword [esp + 0x94]
mov dword [esi + 0x5c], eax
cmp ecx, 0xf
jbe 0x10059241
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059237
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005980e
jmp 0x10059237
mov eax, dword [esp + 0x3c]
jmp 0x100591fa
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov cl, 0x23
mov dword [esp + 0x18], 0x4c514423
mov dword [esp + 0x1c], 0x517c5356
xor eax, eax
mov dword [esp + 0x20], 0x51425446
mov word [esp + 0x24], 0x47
xor byte [esp + eax + 0x19], cl
inc eax
cmp eax, 0xc
jae 0x10059274
mov cl, byte [esp + 0x18]
jmp 0x10059264
xorps xmm0, xmm0
mov byte [esp + 0x25], 0
lea ecx, [esp + 0x19]
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
lea edx, [ecx + 1]
mov dword [esp + 0x94], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100592a1
sub ecx, edx
lea eax, [esp + 0x19]
push ecx
push eax
lea ecx, [esp + 0x88]
call fcn.10002540
cmp dword [esp + 0x90], 0
mov eax, dword [esi]
mov dword [esp + 0x14], eax
je 0x10059373
test eax, eax
je 0x10059373
push 4
push eax
call edi
test eax, eax
jne 0x10059373
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc4]
mov dword [esp + 0xc], edx
mov eax, dword [edx]
mov dword [esp + 0x10], eax
cmp eax, edx
je 0x10059373
nop dword [eax]
cmp eax, dword [ecx + 0xc4]
jne 0x10059311
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x1005934e
cmp dword [ecx + 0x78], 0x10
lea edx, [ecx + 0x64]
jb 0x10059327
mov edx, dword [edx]
cmp dword [esp + 0x94], 0xf
lea eax, [esp + 0x80]
cmova eax, dword [esp + 0x80]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x100593ac
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0xc4]
jne 0x10059367
call fcn.10084bcf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jne 0x10059300
xor eax, eax
mov ecx, dword [esp + 0x94]
mov dword [esi + 0x60], eax
cmp ecx, 0xf
jbe 0x100593bc
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100593b2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10059813
jmp 0x100593b2
mov eax, dword [esp + 0x3c]
jmp 0x10059375
push ecx
push edx
call fcn.1007fa46
add esp, 8
xor al, al
mov byte [esp + 0xb], al
movzx eax, al
mov cl, 7
push eax
mov dword [esp + 0x1c], 0x737f7307
xor eax, eax
mov dword [esp + 0x20], 0x70627558
mov dword [esp + 0x24], 0x58637566
mov word [esp + 0x28], 0x6322
mov byte [esp + 0x2a], 0
nop
xor byte [esp + eax + 0x1d], cl
inc eax
cmp eax, 0xd
jae 0x10059400
mov cl, byte [esp + 0x1c]
jmp 0x100593f0
sub esp, 0x18
mov byte [esp + 0x42], 0
mov edx, esp
lea ecx, [esp + 0x35]
xorps xmm0, xmm0
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10059430
sub ecx, dword [esp + 0x28]
lea eax, [esp + 0x35]
push ecx
push eax
mov ecx, edx
call fcn.10002540
lea eax, [esp + 0x84]
push eax
call fcn.1000ae50
mov ecx, dword [esi + 0x60]
add esp, 0x20
mov edx, eax
call fcn.10017d20
movzx ecx, byte [esp + 0xb]
lea ecx, [ecx + ecx*2]
mov dword [esi + ecx*4 + 0x68], eax
mov ecx, dword [esp + 0x7c]
cmp ecx, 0xf
jbe 0x100594a4
mov edx, dword [esp + 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005949a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100597eb
push ecx
push edx
call fcn.1007fa46
add esp, 8
movzx eax, byte [esp + 0xb]
xor ecx, ecx
movaps xmm0, xmmword [0x100ae980]
push eax
movups xmmword [esp + 0x30], xmm0
nop dword [eax + eax]
mov al, byte [esp + 0x30]
xor byte [esp + ecx + 0x31], al
inc ecx
cmp ecx, 0xe
jb 0x100594c0
sub esp, 0x18
mov byte [esp + 0x57], 0
mov edx, esp
lea ecx, [esp + 0x49]
xorps xmm0, xmm0
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100594f7
sub ecx, dword [esp + 0x28]
lea eax, [esp + 0x49]
push ecx
push eax
mov ecx, edx
call fcn.10002540
lea eax, [esp + 0x84]
push eax
call fcn.1000ae50
mov ecx, dword [esi + 0x60]
add esp, 0x20
mov edx, eax
call fcn.10017d20
movzx ecx, byte [esp + 0xb]
add ecx, 9
lea ecx, [ecx + ecx*2]
mov dword [esi + ecx*4], eax
mov ecx, dword [esp + 0x7c]
cmp ecx, 0xf
jbe 0x1005956d
mov edx, dword [esp + 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059563
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100597eb
push ecx
push edx
call fcn.1007fa46
add esp, 8
call fcn.10012db0
mov edx, eax
test edx, edx
je 0x100597ad
movzx ecx, byte [esp + 0xb]
lea eax, [ecx + ecx*2]
mov dword [esp + 0x10], eax
mov dword [esi + eax*4 + 0x64], edx
call fcn.10018040
mov edx, dword [0x100ae57c]
mov ecx, eax
call edx
mov edx, eax
test edx, edx
je 0x100597ad
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + eax*4 + 0x64]
mov dword [ecx], edx
mov eax, dword [esi + eax*4 + 0x64]
mov edx, dword [esi]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x100595ed
push 4
push eax
call edi
test eax, eax
jne 0x100595ed
mov eax, dword [esp + 0x14]
test eax, eax
je 0x100595ed
push 4
push eax
call edi
test eax, eax
jne 0x100595ed
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esp + 0x10]
mov eax, dword [esi + eax*4 + 0x64]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x1005963c
push 4
push eax
call edi
test eax, eax
jne 0x1005963c
mov ecx, dword [esp + 0xc]
sub esp, 0x20
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x3f340000
mov dword [esp + 8], 0x3f340000
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [0x100ae58c]
movzx eax, byte [esp + 0xb]
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4 + 0x64]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x1005967b
push 4
push eax
call edi
test eax, eax
jne 0x1005967b
mov eax, dword [esp + 0xc]
add eax, 0xcc
push 4
push eax
mov dword [esp + 0x14], eax
call edi
test eax, eax
jne 0x1005967b
mov eax, dword [esp + 0xc]
mov dword [eax], 0xb
movzx eax, byte [esp + 0xb]
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4 + 0x64]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x100596a9
push 4
push eax
call edi
test eax, eax
jne 0x100596a9
mov ecx, dword [esp + 0xc]
push 0x110
call dword [0x100ae558]
movzx eax, byte [esp + 0xb]
add eax, 9
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4]
mov dword [esp + 0xc], eax
test eax, eax
je 0x10059714
push 4
push eax
call edi
test eax, eax
jne 0x10059714
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xdc]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0xe0]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0xe4]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0xe8]
mov dword [esp + 0x4c], eax
movzx eax, byte [esp + 0xb]
movaps xmm0, xmmword [esp + 0x40]
movaps xmmword [esp + 0x80], xmm0
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4 + 0x64]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x10059752
push 4
push eax
call edi
test eax, eax
jne 0x10059752
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x80]
push eax
call dword [0x100ae588]
movzx eax, byte [esp + 0xb]
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4 + 0x64]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x10059783
push 4
push eax
call edi
test eax, eax
jne 0x10059783
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x80]
push eax
call dword [0x100ae538]
movzx eax, byte [esp + 0xb]
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4 + 0x64]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x100597ad
push 4
push eax
call edi
test eax, eax
jne 0x100597ad
mov ecx, dword [esp + 0xc]
push eax
call dword [0x100ae54c]
mov al, byte [esp + 0xb]
inc al
mov byte [esp + 0xb], al
cmp al, 5
jb 0x100593c2
mov esi, dword [esi]
test esi, esi
je 0x100597d7
push 4
push esi
call edi
test eax, eax
jne 0x100597d7
push eax
mov ecx, esi
call dword [0x100ae558]
mov ecx, dword [esp + 0xac]
pop edi
pop esi
xor ecx, esp
call fcn.1007f9e5
mov esp, ebp
pop ebp
ret
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
int3