Function at 0x58de54
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xd4
push 0x33
pop edx
push 0x6b
pop eax
push 0x65
pop ecx
push 0x72
mov word [esp + 0x48], ax
pop eax
push 0x6e
mov word [esp + 0x4c], ax
pop eax
push 0x6c
mov word [esp + 0x4a], cx
mov word [esp + 0x50], cx
pop ecx
push 0x32
mov word [esp + 0x4e], ax
pop eax
push 0x2e
mov word [esp + 0x56], ax
pop eax
mov word [esp + 0x54], ax
push 0x64
pop eax
mov word [esp + 0x56], ax
xor eax, eax
mov word [esp + 0x4e], cx
mov word [esp + 0x58], cx
mov word [esp + 0x5a], cx
mov ecx, 0x3d090c
mov dword [esp + 0x10], 0x76345e21
mov dword [esp + 0x14], 0x25314a71
mov dword [esp + 0x18], 0x453c706a
mov dword [esp + 0x1c], 0x45532867
push ebx
inc ebp
mov dword [esp + 0x20], 0x354b5e58
mov byte [esp + 0x24], dl
mov dword [esp + 0x25], 0x30483939
mov byte [esp + 0x29], 0
mov word [esp + 0x50], dx
mov word [esp + 0x5c], ax
xor eax, eax
mov byte [esp + eax + 0x68], al
inc eax
cmp eax, 0x6a
jb 0x58de7b
dec ecx
jne 0x58de79
cmp byte [esp + 0x98], 0x30
push ebx
push ebp
push esi
push edi
jne 0x58dea3
lea ecx, [esp + 0x54]
call fcn.0058e283
mov esi, eax
jmp 0x58dea7
mov esi, dword [esp + 0x50]
mov edx, 0xe3142
mov ecx, esi
call fcn.0058e2b6
mov edx, 0xd5786
mov ecx, esi
mov ebx, eax
call fcn.0058e2b6
mov edx, 0x348bfa
mov dword [esp + 0x74], eax
mov ecx, esi
call fcn.0058e2b6
push 4
push 0x3000
push 0xd3600
push 0
mov dword [esp + 0x60], eax
call ebx
movsx esi, byte [esp + 0x78]
mov ebp, eax
mov eax, esi
mov dword [esp + 0x4c], ebp
cdq
mov ecx, 0xdf
idiv ecx
movsx ecx, byte [esp + 0x9b]
xor edi, edi
imul eax, ecx
push 5
pop ecx
imul eax, eax, 0xe
mov dword [esp + 0x14], eax
imul eax, esi, 0x156
imul esi, esi, 0xfffff284
cdq
idiv ecx
cdq
idiv ecx
cdq
idiv ecx
cdq
idiv ecx
cdq
idiv ecx
cdq
idiv ecx
mov ecx, 0x156
cdq
idiv ecx
mov ecx, dword [esp + 0x14]
sub esi, eax
add esi, ebp
xor edx, edx
mov dword [esp + 0x14], 0x1a
mov eax, edi
div dword [esp + 0x14]
add edx, ecx
mov al, byte [esp + edx + 0x20]
xor al, byte [edi + 0x91f604]
mov byte [esi + edi], al
inc edi
cmp edi, 0xd3600
jb 0x58df3f
mov ecx, ebp
call fcn.0058e1aa
movsx ecx, byte [esp + 0x80]
shl ecx, 3
push ecx
push 0x3000
push eax
push 0
call ebx
mov esi, eax
test esi, esi
je 0x58e19d
mov edi, dword [ebp + 0x3c]
mov edx, ebp
add edi, ebp
mov ecx, esi
mov dword [esp + 0x14], edi
sub eax, dword [edi + 0x34]
push dword [edi + 0x54]
movzx ebx, word [edi + 0x14]
mov dword [esp + 0x40], eax
mov dword [edi + 0x34], esi
call fcn.0058e1c2
mov eax, dword [edi + 0xa4]
and dword [esp + 0x20], 0
mov edx, dword [edi + 0xa0]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x80]
mov dword [esp + 0x74], eax
mov eax, dword [edi + 0x84]
mov dword [esp + 0x4c], eax
xor eax, eax
and dword [esp + 0x14], eax
pop ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
cmp ax, word [edi + 6]
jae 0x58e19d
add ebx, 0x24
add ebx, edi
mov ecx, dword [ebx]
cmp edx, ecx
jb 0x58e00e
mov eax, dword [ebx - 4]
add eax, ecx
cmp edx, eax
jae 0x58e00e
lea eax, [ebx - 0xc]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x70]
cmp edx, ecx
jb 0x58e026
mov eax, dword [ebx - 4]
add eax, ecx
cmp edx, eax
jae 0x58e026
lea eax, [ebx - 0xc]
mov dword [esp + 0x44], eax
mov edx, dword [ebx + 8]
add ecx, esi
push dword [ebx + 4]
add edx, ebp
call fcn.0058e1c2
mov edx, dword [esp + 0x14]
add ebx, 0x28
movzx eax, word [edi + 6]
inc edx
mov dword [esp + 0x14], edx
cmp edx, eax
mov edx, dword [esp + 0x44]
pop ecx
jl 0x58dff8
mov eax, dword [esp + 0x44]
test eax, eax
je 0x58e19d
mov eax, dword [esp + 0x18]
xor ebp, ebp
test eax, eax
je 0x58e0f1
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x1c]
lea edx, [edi + ebp]
add ebp, 8
add edx, dword [ebx + 0x14]
mov dword [esp + 0x40], edx
mov ecx, dword [edx + 4]
sub ecx, 8
shr ecx, 1
mov dword [esp + 0x44], ecx
je 0x58e0e9
lea eax, [edi + ebp]
add ebp, 2
add eax, dword [ebx + 0x14]
movzx ebx, word [eax]
test ebx, 0xf000
je 0x58e0da
and dword [esp + 0x10], 0
lea ecx, [esp + 0x10]
and ebx, 0xfff
add ebx, dword [edx]
add ebx, esi
push 4
mov edx, ebx
call fcn.0058e1c2
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x14]
add dword [esp + 0x14], eax
mov ecx, ebx
push 4
call fcn.0058e1c2
mov edx, dword [esp + 0x48]
pop ecx
pop ecx
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x1c]
dec ecx
mov dword [esp + 0x44], ecx
jne 0x58e08b
mov eax, dword [esp + 0x18]
cmp ebp, eax
jb 0x58e070
mov edi, dword [esp + 0x14]
mov ebp, dword [edi + 0x80]
add ebp, esi
je 0x58e19d
add ebp, 0xc
jmp 0x58e153
mov eax, dword [ebp]
add eax, esi
push eax
call dword [esp + 0x78]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x58e19d
mov ebx, dword [ebp + 4]
add ebx, esi
cmp dword [ebx], 0
je 0x58e150
mov ebp, dword [esp + 0x50]
mov edi, eax
mov eax, dword [ebx]
test eax, eax
jns 0x58e135
movzx eax, ax
jmp 0x58e13a
add eax, 2
add eax, esi
push eax
push edi
call ebp
mov dword [ebx], eax
add ebx, 4
cmp dword [ebx], 0
jne 0x58e12a
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
add ebp, 0x14
cmp dword [ebp], 0
mov dword [esp + 0x18], ebp
jne 0x58e104
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
call fcn.0058e1b2
test eax, eax
je 0x58e189
mov eax, dword [edi + 0xc0]
mov ebp, dword [eax + esi + 0xc]
jmp 0x58e182
push 0
push 1
push ebx
call eax
lea ebp, [ebp + 4]
mov eax, dword [ebp]
test eax, eax
jne 0x58e178
mov eax, dword [edi + 0x28]
push 0
push 1
add eax, esi
push esi
call eax
neg eax
sbb eax, eax
and eax, esi
jmp 0x58e19f
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret