Function at 0x58d2d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov edx, dword [eax]
push edi
mov dword [ebx], edx
mov esi, dword [eax + 4]
mov dword [ebx + 4], esi
mov edi, dword [eax + 8]
mov dword [ebx + 8], edi
mov ecx, dword [eax + 0xc]
mov dword [ebx + 0xc], ecx
mov ebx, dword [eax + 0x10]
mov dword [ebp + 8], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x18], ebx
mov dword [ecx + 0x10], ebx
mov ecx, dword [eax + 0x14]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 8], ecx
mov dword [ebx + 0x14], ecx
mov ecx, dword [eax + 0x18]
mov dword [ebx + 0x18], ecx
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xc], ecx
mov ecx, ebx
mov dword [ebp - 4], eax
mov dword [ecx + 0x1c], eax
shr eax, 0x10
movzx ecx, al
mov eax, dword [ebp - 4]
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x624f00]
xor ecx, dword [eax*4 + str.cwko0]
mov eax, dword [ebp - 4]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x625300]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 4]
movzx eax, cl
mov ecx, dword [ebp - 0x10]
xor ecx, dword [eax*4 + 0x625700]
mov eax, dword [ebp + 8]
xor ecx, edx
xor ecx, dword [0x627b00]
mov edx, ebx
mov dword [ebp - 0x10], ecx
mov dword [edx + 0x20], ecx
xor ecx, esi
mov dword [edx + 0x24], ecx
mov edx, ecx
xor edx, edi
mov dword [ebp - 0x14], ecx
xor eax, edx
mov edi, ebx
mov dword [ebp + 8], eax
mov dword [edi + 0x2c], eax
shr eax, 0x10
movzx ecx, al
mov eax, dword [ebp + 8]
shr eax, 8
movzx eax, al
mov dword [edi + 0x28], edx
mov esi, dword [ecx*4 + 0x625300]
mov ecx, dword [ebp + 8]
xor esi, dword [eax*4 + 0x624f00]
mov eax, ecx
shr eax, 0x18
xor esi, dword [eax*4 + 0x625700]
movzx eax, cl
mov ecx, dword [ebp - 0xc]
xor esi, dword [eax*4 + str.cwko0]
xor esi, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
xor eax, esi
mov dword [edi + 0x30], esi
mov dword [ebp - 8], eax
xor ecx, eax
mov dword [edi + 0x34], eax
mov dword [edi + 0x38], ecx
mov ebx, ecx
xor ebx, dword [ebp - 4]
mov dword [ebp - 0xc], ecx
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov dword [edi + 0x3c], ebx
mov dword [ebp - 4], ebx
mov ebx, dword [ecx*4 + 0x624f00]
xor ebx, dword [eax*4 + str.cwko0]
mov ecx, dword [ebp - 4]
mov eax, ecx
shr eax, 0x18
xor ebx, dword [eax*4 + 0x625300]
movzx eax, cl
xor ebx, dword [eax*4 + 0x625700]
xor ebx, dword [ebp - 0x10]
xor ebx, dword [0x627b04]
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x40], ebx
mov edi, dword [ebp - 0x14]
xor edi, ebx
mov dword [eax + 0x44], edi
mov dword [ebp - 0x14], edi
xor edi, edx
mov edx, dword [ebp + 8]
mov dword [eax + 0x48], edi
xor edx, edi
mov dword [eax + 0x4c], edx
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [ebp + 8], edx
mov edx, dword [ecx*4 + 0x625300]
mov ecx, dword [ebp + 8]
xor edx, dword [eax*4 + 0x624f00]
mov eax, ecx
shr eax, 0x18
xor edx, dword [eax*4 + 0x625700]
movzx eax, cl
mov ecx, dword [ebp - 0xc]
xor edx, dword [eax*4 + str.cwko0]
mov eax, dword [ebp - 8]
xor edx, esi
mov esi, dword [ebp + 0xc]
xor eax, edx
xor ecx, eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], ecx
mov dword [esi + 0x54], eax
mov eax, dword [ebp - 4]
xor eax, ecx
mov dword [esi + 0x58], ecx
mov dword [esi + 0x5c], eax
mov dword [ebp - 4], eax
shr eax, 0x10
movzx ecx, al
mov eax, dword [ebp - 4]
shr eax, 8
movzx eax, al
mov dword [esi + 0x50], edx
mov ecx, dword [ecx*4 + 0x624f00]
xor ecx, dword [eax*4 + str.cwko0]
mov eax, dword [ebp - 4]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x625300]
mov eax, dword [ebp - 4]
movzx eax, al
xor ecx, dword [eax*4 + 0x625700]
xor ecx, dword [0x627b08]
xor ebx, ecx
mov ecx, esi
mov esi, dword [ebp - 0x14]
mov dword [ecx + 0x60], ebx
mov eax, dword [ebp + 8]
xor esi, ebx
mov dword [ecx + 0x64], esi
xor edi, esi
xor eax, edi
mov dword [ecx + 0x68], edi
mov dword [ecx + 0x6c], eax
mov dword [ebp + 8], eax
shr eax, 0x10
movzx ecx, al
mov eax, dword [ebp + 8]
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x625300]
xor ecx, dword [eax*4 + 0x624f00]
mov eax, dword [ebp + 8]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x625700]
mov eax, dword [ebp + 8]
movzx eax, al
xor ecx, dword [eax*4 + str.cwko0]
mov eax, dword [ebp - 8]
xor edx, ecx
mov ecx, dword [ebp + 0xc]
xor eax, edx
mov dword [ebp - 8], eax
mov dword [ecx + 0x74], eax
mov dword [ecx + 0x70], edx
mov ecx, dword [ebp - 0xc]
xor ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], ecx
mov dword [eax + 0x78], ecx
mov eax, dword [ebp - 4]
xor eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov dword [ecx + 0x7c], eax
shr eax, 0x10
movzx ecx, al
mov eax, dword [ebp - 4]
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x624f00]
xor ecx, dword [eax*4 + str.cwko0]
mov eax, dword [ebp - 4]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x625300]
mov eax, dword [ebp - 4]
movzx eax, al
xor ecx, dword [eax*4 + 0x625700]
xor ecx, dword [0x627b0c]
mov eax, dword [ebp + 8]
xor ebx, ecx
mov ecx, dword [ebp + 0xc]
xor esi, ebx
xor edi, esi
xor eax, edi
mov dword [ebp + 8], eax
mov dword [ecx + 0x8c], eax
shr eax, 0x10
mov dword [ecx + 0x80], ebx
mov dword [ecx + 0x84], esi
mov dword [ecx + 0x88], edi
movzx ecx, al
mov eax, dword [ebp + 8]
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x625300]
xor ecx, dword [eax*4 + 0x624f00]
mov eax, dword [ebp + 8]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x625700]
mov eax, dword [ebp + 8]
movzx eax, al
xor ecx, dword [eax*4 + str.cwko0]
mov eax, dword [ebp - 8]
xor edx, ecx
mov ecx, dword [ebp + 0xc]
xor eax, edx
mov dword [ecx + 0x90], edx
mov dword [ecx + 0x94], eax
mov ecx, dword [ebp - 0xc]
xor ecx, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], ecx
mov dword [eax + 0x98], ecx
mov eax, dword [ebp - 4]
xor eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov dword [ecx + 0x9c], eax
shr eax, 0x10
movzx ecx, al
mov eax, dword [ebp - 4]
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x624f00]
xor ecx, dword [eax*4 + str.cwko0]
mov eax, dword [ebp - 4]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x625300]
mov eax, dword [ebp - 4]
movzx eax, al
xor ecx, dword [eax*4 + 0x625700]
xor ecx, dword [0x627b10]
mov eax, dword [ebp + 8]
xor ebx, ecx
mov ecx, dword [ebp + 0xc]
xor esi, ebx
xor edi, esi
xor eax, edi
mov dword [ebp + 8], eax
mov dword [ecx + 0xac], eax
shr eax, 0x10
mov dword [ecx + 0xa0], ebx
mov dword [ecx + 0xa4], esi
mov dword [ecx + 0xa8], edi
movzx ecx, al
mov eax, dword [ebp + 8]
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x625300]
xor ecx, dword [eax*4 + 0x624f00]
mov eax, dword [ebp + 8]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x625700]
mov eax, dword [ebp + 8]
movzx eax, al
xor ecx, dword [eax*4 + str.cwko0]
mov eax, dword [ebp - 8]
xor edx, ecx
mov ecx, dword [ebp + 0xc]
xor eax, edx
mov dword [ebp - 8], eax
mov dword [ecx + 0xb4], eax
mov dword [ecx + 0xb0], edx
mov ecx, dword [ebp - 0xc]
xor ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], ecx
mov dword [eax + 0xb8], ecx
mov eax, dword [ebp - 4]
xor eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov dword [ecx + 0xbc], eax
shr eax, 0x10
movzx ecx, al
mov eax, dword [ebp - 4]
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x624f00]
xor ecx, dword [eax*4 + str.cwko0]
mov eax, dword [ebp - 4]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x625300]
mov eax, dword [ebp - 4]
movzx eax, al
xor ecx, dword [eax*4 + 0x625700]
xor ecx, dword [0x627b14]
mov eax, dword [ebp + 8]
xor ebx, ecx
mov ecx, dword [ebp + 0xc]
xor esi, ebx
xor edi, esi
xor eax, edi
mov dword [ebp + 8], eax
mov dword [ecx + 0xcc], eax
shr eax, 0x10
mov dword [ecx + 0xc0], ebx
mov dword [ecx + 0xc4], esi
mov dword [ecx + 0xc8], edi
movzx ecx, al
mov eax, dword [ebp + 8]
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x625300]
xor ecx, dword [eax*4 + 0x624f00]
mov eax, dword [ebp + 8]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x625700]
mov eax, dword [ebp + 8]
movzx eax, al
xor ecx, dword [eax*4 + str.cwko0]
mov eax, dword [ebp - 8]
xor edx, ecx
mov ecx, dword [ebp + 0xc]
xor eax, edx
mov dword [ecx + 0xd4], eax
mov dword [ecx + 0xd0], edx
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
xor ecx, eax
mov eax, dword [ebp + 0xc]
xor edx, ecx
mov dword [eax + 0xd8], ecx
mov dword [eax + 0xdc], edx
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x624f00]
xor ecx, dword [eax*4 + str.cwko0]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x625300]
movzx eax, dl
xor ecx, dword [eax*4 + 0x625700]
xor ecx, dword [0x627b18]
mov eax, dword [ebp + 8]
xor ebx, ecx
mov ecx, dword [ebp + 0xc]
xor esi, ebx
xor edi, esi
xor eax, edi
mov dword [ecx + 0xec], eax
mov dword [ecx + 0xf0], 0
mov dword [ecx + 0xe0], ebx
mov dword [ecx + 0xe4], esi
mov dword [ecx + 0xe8], edi
mov byte [ecx + 0xf0], 0xe0
mov cl, byte [0x6534a8]
mov al, cl
pop edi
and al, 0xc0
pop esi
pop ebx
cmp al, 0xc0
je 0x58d87c
and cl, 0x11
cmp cl, 0x11
je 0x58d87c
call fcn.0058d910
test eax, eax
je 0x58d886
mov eax, dword [ebp + 0xc]
mov byte [eax + 0xf1], 0xff
xor eax, eax
mov esp, ebp
pop ebp
ret