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

Disassembly:
push 0xffffffffffffffff
push 0x62b07b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x8a0
mov al, byte [esp + 0x43]
push ebx
push ebp
push esi
push edi
push 0x10
mov byte [esp + 0x44], al
call fcn.00613321
xor ebx, ebx
mov dword [eax], eax
mov dword [eax + 4], eax
add esp, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ebx
mov ebp, dword [esp + 0x8c0]
xor ecx, ecx
lea edx, [esp + 0x30]
mov dword [esp + 0x8b8], ebx
mov cx, word [ebp + 0x14]
push edx
mov dword [esp + 0x34], ecx
mov ecx, 0xa26388
call fcn.0048ea90
test eax, eax
jne 0x58d794
mov eax, dword [esp + 0x44]
mov dword [esp + 0x8b8], 0xffffffff
push eax
mov ecx, dword [eax]
lea eax, [esp + 0x1c]
push ecx
jmp 0x58d7cd
xor eax, eax
xor edx, edx
mov ax, word [ebp + 0x1c]
mov dx, word [ebp + 0x18]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [ebp + 0x10]
shl ecx, 1
lea edx, [ecx + edx*4 + 0xa]
cmp eax, edx
je 0x58d7e1
mov eax, dword [esp + 0x44]
mov dword [esp + 0x8b8], 0xffffffff
push eax
mov ecx, dword [eax]
lea eax, [esp + 0x1c]
push ecx
push eax
lea ecx, [esp + 0x4c]
call fcn.00478000
mov ecx, dword [esp + 0x44]
push ecx
jmp 0x58e242
xor eax, eax
mov ax, word [ebp + 0x1a]
cmp eax, 6
ja case.0x58d7f0.4
jmp dword [eax*4 + 0x58e264]
mov edi, 0x674184
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x548]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [0xce9528]
and ecx, 3
test al, al
rep movsb byte es:[edi], byte [esi]
je case.0x58d7f0.4
push 0xb14
mov ecx, 0xced988
call fcn.0052d310
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
lea esi, [esp + 0x80]
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov ebp, edx
mov ecx, 0xa
cdq
idiv ecx
mov ecx, 0x4c
lea edi, [esp + 0x2e4]
mov dword [esp + 0x2e0], 0xb14
lea eax, [esp + 0x2e0]
push eax
mov dword [esp + 0x14], 0
mov ebx, edx
xor edx, edx
mov dword [esp + 0xfe], edx
mov dword [esp + 0x102], edx
mov dword [esp + 0x106], edx
mov byte [esp + 0x10a], dl
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, 0xced988
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x78]
test ecx, ecx
jle 0x58de2d
lea edx, [ebp + ebp*4]
lea ebx, [ebx + edx*2]
mov eax, ebx
shl eax, 4
add eax, ebx
lea ecx, [eax*8 + 0xcedabf]
mov dword [esp + 0x14], ecx
xor edx, edx
mov ecx, 0x4c
mov dword [esp + 0x22a], edx
lea esi, [esp + 0x1b0]
mov dword [esp + 0x22e], edx
lea edi, [esp + 0x418]
mov dword [esp + 0x232], edx
mov dword [esp + 0x414], 0xb14
mov byte [esp + 0x236], dl
lea eax, [esp + 0x414]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x20]
push eax
push ecx
mov ecx, 0xced988
xor ebp, ebp
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x58d9e2
mov ebx, dword [esp + 0x14]
mov ax, word [ebx]
test ax, ax
je 0x58d970
mov edx, dword [esp + 0x8c0]
sub ax, word [edx + 0x16]
mov word [ebx], ax
xor eax, eax
mov ecx, 0x4c
mov dword [esp + 0x22a], eax
lea esi, [esp + 0x1b0]
mov dword [esp + 0x22e], eax
lea edi, [esp + 0x418]
mov dword [esp + 0x232], eax
mov dword [esp + 0x414], 0xb14
mov byte [esp + 0x236], al
lea edx, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x414]
inc ebp
push ecx
push edx
mov ecx, 0xced988
add ebx, 0x88
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
cmp ebp, ecx
mov dword [esp + 0x1c], edx
jl 0x58d95a
xor eax, eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xfa], eax
mov ebp, dword [esp + 0x14]
mov dword [esp + 0xfe], eax
mov ecx, 0x4c
mov dword [esp + 0x102], eax
lea esi, [esp + 0x80]
lea edi, [esp + 0x2e4]
mov byte [esp + 0x106], al
mov dword [esp + 0x2e0], 0xb14
lea edx, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2e0]
inc ebx
add ebp, 0x550
push ecx
push edx
mov ecx, 0xced988
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
mov dword [esp + 0x1c], edx
jl 0x58d8e9
jmp 0x58de2d
push 0x95b
push 0x6d67a8
call fcn.0041b4a0
push 0x95b
call fcn.004e84d0
push 0x67415c
call fcn.004cbc60
add esp, 0x10
jmp case.0x58d7f0.4
push 0x674144
call fcn.004cbc60
mov edi, 0x674120
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x54c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x550]
push ecx
call fcn.00586e90
push 0x879
push 0x6d67a8
call fcn.0041b4a0
push 0x879
call fcn.004e84d0
add esp, 0x18
jmp case.0x58d7f0.4
mov edi, 0x642380
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x548]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.0x58d7f0.4
mov edi, 0x674104
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x548]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.0x58d7f0.4
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, 0xced988
call fcn.0053bf30
test eax, eax
je case.0x58d7f0.4
mov eax, dword [esp + 0x34]
xor edx, edx
mov dword [esp + 0xfa], edx
mov ecx, 0x4c
mov dword [esp + 0xfe], edx
lea esi, [esp + 0x80]
mov dword [esp + 0x102], edx
lea edi, [esp + 0x2e4]
mov byte [esp + 0x106], dl
mov dword [esp + 0x2e0], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2e0]
lea edx, [esp + 0x20]
push ecx
push edx
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
add eax, 0x10
mov edx, dword [ecx + 4]
xor ecx, ecx
mov cx, word [ebp + 0x16]
mov dword [esp + 0x1c], edx
push ecx
push eax
lea edx, [esp + 0x550]
push 0x6740e8
push edx
call fcn.006133d6
mov al, byte [0xce9528]
add esp, 0x10
test al, al
je case.0x58d7f0.4
push 0xb14
mov ecx, 0xced988
call fcn.0052d310
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
lea esi, [esp + 0x1b0]
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov ebp, edx
mov ecx, 0xa
cdq
idiv ecx
mov ecx, 0x4c
lea edi, [esp + 0x418]
mov dword [esp + 0x414], 0xb14
lea eax, [esp + 0x414]
push eax
mov dword [esp + 0x14], 0
mov ebx, edx
xor edx, edx
mov dword [esp + 0x22e], edx
mov dword [esp + 0x232], edx
mov dword [esp + 0x236], edx
mov byte [esp + 0x23a], dl
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, 0xced988
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x78]
test ecx, ecx
jle 0x58de2d
lea edx, [ebp + ebp*4]
lea ebx, [ebx + edx*2]
mov eax, ebx
shl eax, 4
add eax, ebx
lea ecx, [eax*8 + 0xcedabf]
mov dword [esp + 0x14], ecx
xor edx, edx
mov ecx, 0x4c
mov dword [esp + 0xfa], edx
lea esi, [esp + 0x80]
mov dword [esp + 0xfe], edx
lea edi, [esp + 0x2e4]
mov dword [esp + 0x102], edx
mov dword [esp + 0x2e0], 0xb14
mov byte [esp + 0x106], dl
lea eax, [esp + 0x2e0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x20]
push eax
push ecx
mov ecx, 0xced988
xor ebp, ebp
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x58ddab
mov ebx, dword [esp + 0x14]
mov ax, word [ebx]
test ax, ax
je 0x58dd39
mov edx, dword [esp + 0x8c0]
sub ax, word [edx + 0x16]
mov word [ebx], ax
xor eax, eax
mov ecx, 0x4c
mov dword [esp + 0xfa], eax
lea esi, [esp + 0x80]
mov dword [esp + 0xfe], eax
lea edi, [esp + 0x2e4]
mov dword [esp + 0x102], eax
mov dword [esp + 0x2e0], 0xb14
mov byte [esp + 0x106], al
lea edx, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2e0]
inc ebp
push ecx
push edx
mov ecx, 0xced988
add ebx, 0x88
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
cmp ebp, ecx
mov dword [esp + 0x1c], edx
jl 0x58dd23
xor eax, eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x22a], eax
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x22e], eax
mov ecx, 0x4c
mov dword [esp + 0x232], eax
lea esi, [esp + 0x1b0]
lea edi, [esp + 0x418]
mov byte [esp + 0x236], al
mov dword [esp + 0x414], 0xb14
lea edx, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x414]
inc ebx
add ebp, 0x550
push ecx
push edx
mov ecx, 0xced988
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
mov dword [esp + 0x1c], edx
jl 0x58dcb2
mov ebp, dword [esp + 0x8c0]
mov byte [0xce9528], 0
mov eax, dword [0xa4f274]
test eax, eax
jne 0x58de56
lea eax, [esp + 0x548]
push 0
push eax
call fcn.00586da0
add esp, 8
or esi, 0xffffffff
lea edi, [esp + 0x548]
mov ecx, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push 0
push 0
dec ecx
push 0
push ecx
lea ecx, [esp + 0x558]
push ecx
call fcn.004cbc90
add esp, 0x14
cmp word [ebp + 0x1a], 3
jne 0x58e1ff
mov edx, dword [esp + 0x34]
mov ecx, 0xced988
push edx
call fcn.0053bf30
test eax, eax
jne 0x58dee5
mov eax, dword [esp + 0x44]
mov dword [esp + 0x8b8], esi
mov esi, eax
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esp + 0x10], ecx
je 0x58e241
lea eax, [esp + 0x18]
push 0
push eax
lea ecx, [esp + 0x18]
call fcn.004525d0
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push ecx
push edx
lea ecx, [esp + 0x48]
call fcn.00452590
cmp dword [esp + 0x10], esi
jne 0x58deb9
jmp 0x58e23d
xor eax, eax
mov ecx, dword [0x6d68d0]
mov ax, word [ebp + 0x16]
imul eax, dword [esp + 0x3c]
sub ecx, eax
mov dword [0x6d68d0], ecx
jns 0x58df0a
mov dword [0x6d68d0], 0
xor edi, edi
lea esi, [ebp + 0x1e]
cmp word [ebp + 0x18], di
jbe 0x58df38
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 1]
mov dl, byte [esi]
push ecx
push edx
mov ecx, 0xced988
call fcn.0053cd60
xor eax, eax
inc edi
mov ax, word [ebp + 0x18]
add esi, 4
cmp edi, eax
jl 0x58df15
xor ecx, ecx
cmp word [ebp + 0x1c], 0
mov cx, word [ebp + 0x18]
mov dword [esp + 0x18], 0
lea ebx, [ebp + ecx*4 + 0x1e]
jbe 0x58e1a4
add ebx, 2
xor ecx, ecx
mov eax, 0x66666667
mov cx, word [ebx - 2]
lea esi, [esp + 0x80]
imul ecx
sar edx, 2
mov eax, edx
lea edi, [esp + 0x2e4]
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov dword [esp + 0x10], edx
mov ecx, 0xa
cdq
idiv ecx
mov eax, dword [esp + 0x34]
mov ecx, 0x4c
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x58], edx
xor edx, edx
mov dword [esp + 0xfa], edx
mov dword [esp + 0xfe], edx
mov dword [esp + 0x102], edx
mov byte [esp + 0x106], dl
lea edx, [esp + 0x60]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2e0]
push ecx
push edx
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
lea esi, [esp + 0x1b0]
lea edi, [esp + 0x64c]
mov eax, dword [ecx]
mov ebp, dword [eax + 0x78]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x22a], eax
mov dword [esp + 0x648], ecx
mov dword [esp + 0x22e], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x232], eax
mov ecx, 0x4c
mov byte [esp + 0x236], al
lea edx, [esp + 0x648]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x70]
push edx
push eax
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
test ebp, ebp
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
jle 0x58e183
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x28], ebp
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
mov edx, eax
mov dword [esp + 0x54], eax
shl edx, 4
add edx, eax
lea edx, [edx*8 + 0xceda70]
mov dword [esp + 0x14], edx
test ecx, ecx
jle 0x58e15f
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
mov dword [ebp - 8], eax
mov dword [ebp], ecx
xor ecx, ecx
mov dword [ebp + 4], edx
mov cx, word [ebx]
mov dword [ebp - 4], ecx
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x48e], ecx
mov dh, byte [ebx + 0xa]
mov dword [esp + 0x492], ecx
or dx, word [ebx]
mov dword [esp + 0x496], ecx
mov byte [esp + 0x49a], cl
mov ecx, 0x4c
mov word [ebp + 0x39], dx
lea esi, [esp + 0x414]
lea edi, [esp + 0x780]
mov dword [esp + 0x77c], eax
lea edx, [esp + 0x77c]
lea eax, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
mov esi, dword [esp + 0x5c]
mov eax, dword [ecx]
mov eax, dword [eax + 0xf0]
mov edx, dword [ecx + 4]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebx + 6]
mov dword [esp + 0x6c], edx
mov edx, dword [ebx + 2]
push ecx
mov ecx, dword [esp + 0x38]
lea eax, [ebp + 0x20]
push edx
push eax
push esi
push ecx
mov ecx, 0xced988
call fcn.00543bf0
mov eax, dword [esp + 0x4c]
add ebp, 0x88
inc esi
dec eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x4c], eax
jne 0x58e08f
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
add edi, 0x550
add eax, 0xa
dec edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x28], edx
jne 0x58e07b
mov ecx, dword [esp + 0x8c0]
mov eax, dword [esp + 0x18]
xor edx, edx
inc eax
mov dx, word [ecx + 0x1c]
add ebx, 0xe
cmp eax, edx
mov dword [esp + 0x18], eax
jl 0x58df58
mov edi, dword [esp + 0x44]
mov dword [esp + 0x8b8], 0xffffffff
mov esi, dword [edi]
cmp esi, edi
je 0x58e1fc
lea edx, [esp + 0x54]
mov eax, esi
mov esi, dword [esi]
push 0
push edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
call fcn.004525d0
mov eax, dword [eax]
push eax
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ecx], edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
call fcn.006066eb
mov ecx, dword [esp + 0x4c]
add esp, 4
dec ecx
cmp esi, edi
mov dword [esp + 0x48], ecx
jne 0x58e1b9
mov edi, dword [esp + 0x44]
push edi
jmp 0x58e242
mov eax, dword [esp + 0x44]
mov dword [esp + 0x8b8], esi
mov esi, eax
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esp + 0x18], ecx
je 0x58e241
lea eax, [esp + 0x28]
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.004525d0
mov ecx, dword [eax]
lea edx, [esp + 0x4c]
push ecx
push edx
lea ecx, [esp + 0x48]
call fcn.00452590
cmp dword [esp + 0x18], esi
jne 0x58e216
mov eax, dword [esp + 0x44]
push eax
call fcn.006066eb
mov ecx, dword [esp + 0x8b4]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8ac
ret