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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x58e87e
sub esp, 0x88
lea edi, [esp + 0x4c]
xor eax, eax
call fcn.0044b771
lea edi, [esp + 0x4c]
call fcn.0044b771
lea ecx, [0x61c368]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], 3
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x58e864
mov eax, dword [ecx + 8]
cmp eax, 0x29cb474c
jne 0x58e859
lea edx, [0x601be0]
cmp edx, ecx
jne 0x58e84f
mov ebx, dword [esp + 0x90]
je 0x58e7d9
cmp eax, 0x7ade63e2
jne 0x58e864
lea eax, [0x614f00]
cmp eax, ecx
jne 0x58e7cf
mov ebx, dword [esp + 0x90]
jne 0x58e864
mov ebp, dword [ebx + 0x1c]
mov dword [esp + 0x4c], ebp
mov ebp, dword [ebx + 4]
mov esi, dword [ebx]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], esi
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0x5c], ebp
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x60], ebp
mov dword [esp + 0x50], 0xc8
movzx ebx, byte [ebx + 0x40]
mov byte [esp + 0x80], bl
xor ebx, ebx
mov byte [esp + 0x33], bl
mov ebp, dword [esp + 0x5c]
test ebp, ebp
jne 0x58e04f
mov ebp, dword [esp + 0x60]
test ebp, ebp
jne 0x58e04f
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], 1
lea eax, [esp + 0x4c]
mov dword [esp], eax
call fcn.0058e890
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test ecx, ecx
jne 0x58e7ba
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
movzx ebp, byte [esp + 0x33]
xchg ebp, eax
mov byte [esp], al
xchg ebp, eax
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.0058ecc0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
test eax, eax
jne 0x58e7a5
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ebx
movzx eax, byte [esp + 0x33]
test al, al
je 0x58e0f5
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
cmp eax, 4
jne 0x58e0f5
mov eax, dword [ecx]
cmp eax, 0x44414548
je 0x58e723
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp], eax
call fcn.0058f3b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x84], eax
test edx, edx
jne 0x58e70e
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 8]
cmp edx, 0x29cb474c
jne 0x58e706
lea edx, [0x601be0]
cmp edx, ecx
jne 0x58e6f9
mov ebx, dword [esp + 0x34]
cmp ebx, 0xffffffff
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov esi, dword [esp + 0x38]
cmp esi, 0xffffffff
sete dl
and edx, ebp
test dl, dl
je 0x58e1cc
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
test ebp, ebp
jle 0x58e6f2
mov ebp, dword [edx]
mov edx, dword [edx + 4]
cmp edx, 7
jne 0x58e6eb
mov edx, dword [ebp]
cmp edx, 0x6e756863
jne 0x58e6e4
movzx edx, word [ebp + 4]
cmp dx, 0x656b
jne 0x58e6dd
movzx edx, byte [ebp + 6]
cmp dl, 0x64
sete dl
test dl, dl
je 0x58e6a8
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
test ebp, ebp
jle 0x58e6a1
mov ebp, dword [edx]
mov edx, dword [edx + 4]
cmp edx, 7
jne 0x58e69a
mov edx, dword [ebp]
cmp edx, 0x6e756863
jne 0x58e693
movzx edx, word [ebp + 4]
cmp dx, 0x656b
jne 0x58e68c
movzx edx, byte [ebp + 6]
cmp dl, 0x64
sete dl
test dl, dl
je 0x58e4fc
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
cmp ebx, 4
jne 0x58e4f5
mov edx, dword [edx]
cmp edx, 0x44414548
sete dl
test dl, dl
je 0x58e3fb
lea edx, [0x660a70]
mov dword [esp + 0x64], edx
lea edx, [0x7db1e8]
mov dword [esp + 0x68], edx
mov edx, dword [ecx + 8]
cmp edx, 0x29cb474c
jne 0x58e330
lea ebx, [0x601be0]
cmp ebx, ecx
jne 0x58e3f1
mov eax, dword [esp + 0x90]
jne 0x58e330
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [eax + 0x20], edx
mov edx, dword [0x7db370]
test edx, edx
jne 0x58e31d
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov dword [eax + 0x34], edx
mov dword [eax + 0x38], ecx
mov ecx, dword [0x7db370]
test ecx, ecx
jne 0x58e30d
mov dword [eax + 0x30], ebx
movzx ecx, byte [esp + 0x80]
mov byte [eax + 0x3c], cl
mov ecx, dword [0x7db370]
mov edx, dword [esp + 0x84]
test ecx, ecx
jne 0x58e301
mov dword [eax + 0x40], edx
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
add esp, 0x88
ret
lea edi, [eax + 0x40]
mov eax, edx
call fcn.0044b680
jmp 0x58e2e4
lea edi, [eax + 0x30]
mov ecx, eax
mov eax, ebx
call fcn.0044b680
mov eax, ecx
jmp 0x58e2c5
lea edi, [eax + 0x24]
mov edx, eax
mov eax, ecx
call fcn.0044b680
mov eax, edx
jmp 0x58e298
cmp edx, 0x7ade63e2
jne 0x58e2e4
lea edx, [0x614f00]
cmp edx, ecx
jne 0x58e3e7
mov eax, dword [esp + 0x90]
jne 0x58e2e4
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [eax + 0x20], edx
mov edx, dword [0x7db370]
test edx, edx
jne 0x58e3d7
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov dword [eax + 0x2c], edx
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x7c]
mov dword [eax + 0x38], ecx
mov dword [eax + 0x3c], ebx
mov ecx, dword [0x7db370]
test ecx, ecx
jne 0x58e3c7
mov dword [eax + 0x34], edx
movzx ecx, byte [esp + 0x80]
mov byte [eax + 0x40], cl
mov ecx, dword [0x7db370]
mov edx, dword [esp + 0x84]
test ecx, ecx
jne 0x58e3b8
mov dword [eax + 0x58], edx
jmp 0x58e2e4
lea edi, [eax + 0x58]
mov eax, edx
call fcn.0044b680
jmp 0x58e2e4
lea edi, [eax + 0x34]
mov ecx, eax
mov eax, edx
call fcn.0044b680
mov eax, ecx
jmp 0x58e394
lea edi, [eax + 0x24]
mov edx, eax
mov eax, ecx
call fcn.0044b680
mov eax, edx
jmp 0x58e367
mov eax, 0
jmp 0x58e34d
mov eax, 0
jmp 0x58e276
mov edx, dword [esp + 0x50]
lea ebx, [edx - 0x64]
cmp ebx, 0x63
jbe 0x58e23e
cmp edx, 0xcc
je 0x58e23e
cmp edx, 0x130
je 0x58e23e
lea eax, [0x65f230]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
call fcn.00570790
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], ecx
lea edx, [0x609c80]
mov dword [esp], edx
call fcn.00409a30
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
mov ecx, dword [0x7db370]
test ecx, ecx
jne 0x58e4e3
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 8], ecx
mov edx, dword [0x7db370]
test edx, edx
jne 0x58e4bb
mov edx, dword [esp + 0x90]
mov dword [eax + 0xc], edx
mov ebx, dword [esp + 0x94]
mov dword [eax + 0x10], ebx
movzx ebx, byte [esp + 0x80]
mov byte [eax + 0x14], bl
lea ebx, [0x660570]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], eax
jmp 0x58e252
lea edi, [eax + 0xc]
mov edx, eax
mov eax, dword [esp + 0x90]
call fcn.0044b680
lea edi, [edx + 0x10]
mov ebx, eax
mov eax, dword [esp + 0x94]
call fcn.0044b680
mov eax, edx
mov edx, ebx
jmp 0x58e49d
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x48]
call fcn.0044b680
mov eax, ecx
jmp 0x58e475
xor edx, edx
jmp 0x58e236
test ebx, ebx
sete dl
test esi, esi
xchg ebp, ebx
sete bl
xchg ebp, ebx
and edx, ebp
test dl, dl
je 0x58e529
lea edx, [0x660a70]
mov dword [esp + 0x64], edx
lea edx, [0x7db1e8]
mov dword [esp + 0x68], edx
jmp 0x58e252
test ebx, ebx
seta dl
and edx, ebp
test esi, esi
xchg ebp, ebx
setg bl
xchg ebp, ebx
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x58e5d2
movzx edx, byte [esp + 0x80]
test dl, dl
jne 0x58e56a
lea edx, [0x660a70]
mov dword [esp + 0x64], edx
lea edx, [0x7db1e8]
mov dword [esp + 0x68], edx
jmp 0x58e252
lea eax, [0x609c80]
mov dword [esp], eax
call fcn.00409a30
mov eax, dword [esp + 4]
lea ecx, [0x65f230]
mov dword [eax], ecx
mov ecx, dword [0x7db370]
test ecx, ecx
jne 0x58e5bd
mov ecx, dword [esp + 0x94]
mov dword [eax + 4], ecx
movzx edx, byte [esp + 0x80]
mov byte [eax + 0x14], dl
lea edx, [0x660570]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x8c]
jmp 0x58e252
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x94]
call fcn.0044b680
mov eax, ecx
jmp 0x58e598
lea eax, [0x5f0140]
mov dword [esp], eax
call fcn.00409a30
mov eax, dword [esp + 4]
lea ecx, [0x65f230]
mov dword [eax], ecx
mov ecx, dword [0x7db370]
test ecx, ecx
jne 0x58e674
mov ecx, dword [esp + 0x94]
mov dword [eax + 4], ecx
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x34]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 0xc], ecx
lea ecx, [0x609c80]
mov dword [esp], ecx
call fcn.00409a30
mov eax, dword [esp + 4]
lea ecx, [0x65f3b0]
mov dword [eax], ecx
mov ecx, dword [0x7db370]
test ecx, ecx
jne 0x58e662
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], ecx
movzx edx, byte [esp + 0x80]
mov byte [eax + 0x14], dl
lea edx, [0x660570]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x8c]
jmp 0x58e252
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x44]
call fcn.0044b680
mov eax, ecx
jmp 0x58e63d
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x94]
call fcn.0044b680
mov eax, ecx
jmp 0x58e600
xor edx, edx
jmp 0x58e212
xor edx, edx
jmp 0x58e212
xor edx, edx
jmp 0x58e212
xor edx, edx
jmp 0x58e212
mov edx, dword [esp + 0x50]
lea ebp, [edx - 0x64]
cmp ebp, 0x63
jbe 0x58e1cc
cmp edx, 0xcc
je 0x58e1cc
cmp edx, 0x130
je 0x58e1cc
mov byte [esp + 0x80], 1
jmp 0x58e1cc
xor edx, edx
jmp 0x58e1c4
xor edx, edx
jmp 0x58e1c4
xor edx, edx
jmp 0x58e1c4
xor edx, edx
jmp 0x58e1c4
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
jmp 0x58e1cc
lea edx, [0x601be0]
jmp 0x58e6f9
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], ecx
add esp, 0x88
ret
mov eax, dword [esp + 0x4c]
lea ecx, [0x60e8c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x61e7e0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xe
call fcn.0040dc40
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
jle 0x58e79f
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00590010
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
test ecx, ecx
jne 0x58e78a
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebx
jmp 0x58e0fd
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
add esp, 0x88
ret
xor ecx, ecx
xor eax, eax
jmp 0x58e75d
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
add esp, 0x88
ret
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
add esp, 0x88
ret
mov ebx, 0
jmp 0x58dfee
mov dword [esp + 0x40], ebx
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x4c], eax
mov ecx, dword [ebx + 8]
mov dword [esp + 0x50], ecx
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x5c], ecx
mov edx, dword [ebx + 0x18]
mov dword [esp + 0x60], edx
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], edx
mov byte [esp + 0xc], 1
call fcn.0058f270
movzx eax, byte [esp + 0x10]
mov byte [esp + 0x80], al
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x58e832
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], eax
lea eax, [0x614f00]
mov ecx, dword [esp + 0x8c]
lea edx, [0x601be0]
mov ebx, 1
jmp 0x58e02b
mov ebx, 0
jmp 0x58dfc8
lea edx, [0x601be0]
jmp 0x58dfce
lea eax, [0x5dfce0]
mov dword [esp], eax
lea eax, [0x65e6d0]
mov dword [esp + 4], eax
call fcn.00426780
ud2
call fcn.00449f20
jmp fcn.0058df50