Function at 0x58b979
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x86c
mov dword [ebp - 0x82c], eax
cmp dword [eax + 0x324], 0
je 0x58bb07
mov eax, dword [eax + 0x320]
mov edi, dword [eax + 0xc]
lea ebx, [edi - 1]
mov esi, ebx
shl esi, 4
lea ecx, [ebx*4]
mov dword [ebp - 0x838], ecx
mov ecx, dword [eax + 0x20]
add ecx, esi
mov eax, dword [eax + 0x24]
mov edx, dword [eax + ebx*4]
mov eax, dword [ebp - 0x82c]
call fcn.0058b885
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax + 0x320]
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0xc]
dec eax
mov dword [edx + esi + 0xc], eax
mov eax, dword [ebp - 0x82c]
lea ebx, [eax + 0x78]
xor eax, eax
mov dword [ebp - 0x840], eax
mov eax, dword [ebp - 0x82c]
mov ecx, dword [ebp - 0x840]
cmp ecx, dword [eax + 0x344]
jae 0x58ba8c
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x58ba7e
mov ecx, dword [eax + 0x20]
add ecx, esi
mov eax, dword [eax + 0x24]
mov edx, dword [ebp - 0x838]
mov edx, dword [eax + edx]
mov eax, dword [ebp - 0x82c]
call fcn.0058b885
mov eax, dword [ebx + 0x4c]
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov ecx, dword [ebp - 0x838]
mov eax, dword [eax + ecx]
mov eax, dword [eax + 0xc]
dec eax
mov dword [edx + esi + 0xc], eax
cmp dword [ebx], 1
jne 0x58ba7e
mov eax, dword [ebx + 0x4c]
mov ecx, dword [eax + 0x20]
add ecx, esi
mov dword [ebp - 0x830], ecx
mov eax, dword [ebx + 0xc]
imul eax, dword [ebx + 8]
imul eax, dword [ebx + 4]
mov ecx, 0x320
cdq
idiv ecx
mov ecx, dword [ebp - 0x830]
imul eax, dword [ecx + 0xc]
mov dword [ecx + 0xc], eax
inc dword [ebp - 0x840]
add ebx, 0x50
jmp 0x58b9fa
mov eax, dword [eax + 0x320]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + edi*4]
mov eax, dword [ebp - 0x82c]
mov edx, dword [eax + 0x2fc]
mov eax, dword [eax + 0x2f8]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax + 0x300]
mov dword [ebp - 0x838], eax
shl eax, 4
mov edi, dword [ebp - 0x82c]
cmp dword [edi + 0x324], 0
je 0x58bb07
mov edx, dword [edi + 0x320]
mov edx, dword [edx + 0x24]
mov ecx, dword [edx + 4]
cdq
mov ebx, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0x18]
sub ecx, eax
sbb ebx, edx
add ecx, 0xfffff7fc
adc ebx, 0xffffffff
mov dword [ebp - 0x858], ecx
mov dword [ebp - 0x854], ebx
mov ecx, 1
jmp 0x58bb76
mov eax, dword [ebp - 0x82c]
mov edx, dword [eax + 0x2fc]
mov eax, dword [eax + 0x2f8]
mov dword [ebp - 0x834], edx
add eax, 0xfffff804
adc edx, 0xffffffff
mov dword [ebp - 0x858], eax
mov dword [ebp - 0x854], edx
mov eax, dword [ebp - 0x82c]
mov ecx, dword [eax + 0x318]
mov eax, dword [eax + 0x300]
mov dword [ebp - 0x838], eax
shl eax, 4
mov dword [esp], eax
mov edx, str.idx1
mov eax, dword [ebp - 0x82c]
call fcn.00504ada
mov ecx, 1
test eax, eax
je 0x58bb76
mov dword [0x611760], 5
xor ecx, ecx
mov eax, dword [ebp - 0x82c]
fld qword [eax + 0x10]
fld qword [0x608990]
fcompi st(1)
ja 0x58bbd5
fst qword [ebp - 0x838]
movsd xmm0, qword [ebp - 0x838]
mulsd xmm0, qword [0x608998]
addsd xmm0, qword [0x6089a0]
cvttsd2si eax, xmm0
mov dword [ebp - 0x838], eax
movsd xmm0, qword [0x608998]
fstp qword [ebp - 0x840]
divsd xmm0, qword [ebp - 0x840]
addsd xmm0, qword [0x6089a0]
cvttsd2si ebx, xmm0
jmp 0x58bbe1
fstp st(0)
xor eax, eax
mov dword [ebp - 0x838], eax
xor ebx, ebx
mov dword [ebp - 0x818], 0x46464952
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax + 0x324]
mov dword [ebp - 0x848], eax
test eax, eax
mov eax, dword [ebp - 0x82c]
je 0x58bc18
mov eax, dword [eax + 0x320]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x18]
jmp 0x58bc1e
mov eax, dword [eax + 0x2f8]
sub eax, 8
mov edi, eax
movzx esi, ah
mov edx, eax
sar edx, 0x10
shr eax, 0x18
mov dword [ebp - 0x840], eax
mov eax, edi
mov byte [ebp - 0x814], al
mov eax, esi
mov byte [ebp - 0x813], al
mov byte [ebp - 0x812], dl
mov al, byte [ebp - 0x840]
mov byte [ebp - 0x811], al
mov dword [ebp - 0x810], 0x20495641
mov dword [ebp - 0x80c], 0x5453494c
xor esi, esi
mov dword [ebp - 0x808], esi
mov dword [ebp - 0x804], 0x6c726468
mov dword [ebp - 0x800], 0x68697661
mov dword [ebp - 0x7fc], 0x38
mov dword [ebp - 0x7f8], ebx
xor edi, edi
mov dword [ebp - 0x7f4], edi
mov dword [ebp - 0x7f0], edi
mov eax, 0x100
test ecx, ecx
je 0x58bcc6
mov eax, 0x130
mov edi, dword [ebp - 0x82c]
cmp dword [edi + 0x334], 0
jne 0x58bcc6
mov eax, 0x110
mov byte [ebp - 0x7ec], al
mov word [ebp - 0x7eb], 1
mov byte [ebp - 0x7e9], 0
mov eax, dword [ebp - 0x82c]
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0x7e8], edx
xor edi, edi
mov dword [ebp - 0x7e4], edi
mov eax, dword [eax + 0x344]
mov dword [ebp - 0x850], eax
inc eax
mov dword [ebp - 0x7e0], eax
xor eax, eax
mov dword [ebp - 0x7dc], eax
mov eax, dword [ebp - 0x82c]
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov esi, dword [eax + 0xc]
mov dword [ebp - 0x7d8], ecx
mov dword [ebp - 0x7d4], ebx
xor edi, edi
mov dword [ebp - 0x7d0], edi
mov dword [ebp - 0x7cc], edi
mov dword [ebp - 0x7c8], edi
mov dword [ebp - 0x7c4], edi
mov dword [ebp - 0x7c0], 0x5453494c
xor edi, edi
mov dword [ebp - 0x7bc], edi
mov dword [ebp - 0x7b8], 0x6c727473
mov dword [ebp - 0x7b4], 0x68727473
mov dword [ebp - 0x7b0], 0x38
mov dword [ebp - 0x7ac], 0x73646976
mov edi, dword [eax + 0x18]
mov dword [ebp - 0x7a8], edi
xor eax, eax
mov dword [ebp - 0x7a4], eax
mov dword [ebp - 0x7a0], eax
mov word [ebp - 0x79c], 0
mov byte [ebp - 0x79a], 0
mov dword [ebp - 0x799], 0xf424000
mov byte [ebp - 0x795], 0
mov eax, dword [ebp - 0x838]
mov dword [ebp - 0x794], eax
xor eax, eax
mov dword [ebp - 0x790], eax
mov dword [ebp - 0x78c], edx
mov eax, dword [ebp - 0x82c]
mov edx, dword [eax + 0x74]
mov dword [ebp - 0x788], edx
xor edx, edx
mov dword [ebp - 0x784], edx
mov dword [ebp - 0x780], edx
mov dword [ebp - 0x77c], edx
mov dword [ebp - 0x778], edx
mov eax, dword [eax + 0x558]
lea edx, [eax + 1]
and edx, 0xfffffffe
mov dword [ebp - 0x838], edx
mov dword [ebp - 0x774], 0x66727473
add edx, 0x28
mov dword [ebp - 0x770], edx
lea edx, [eax + 0x28]
mov dword [ebp - 0x76c], edx
mov dword [ebp - 0x768], ecx
mov dword [ebp - 0x764], ebx
mov dword [ebp - 0x760], 0x180001
mov dword [ebp - 0x75c], edi
mov edi, dword [ebp - 0x82c]
imul esi, dword [edi + 8]
lea esi, [esi + esi*2]
mov dword [ebp - 0x758], esi
mov word [ebp - 0x754], 0
xor ecx, ecx
mov dword [ebp - 0x752], ecx
mov dword [ebp - 0x74e], ecx
mov dword [ebp - 0x74a], ecx
mov word [ebp - 0x746], 0
test eax, eax
je 0x58c093
mov esi, dword [edi + 0x554]
test esi, esi
je 0x58c093
lea edx, [eax + 0xd4]
cmp edx, 0x800
ja 0x58beab
lea ebx, [ebp - 0x744]
mov edi, ebx
mov ecx, eax
rep movsb byte es:[edi], byte [esi]
mov ebx, edx
mov edi, dword [ebp - 0x838]
cmp eax, edi
je 0x58becd
cmp edx, 0x7ff
jg 0x58bec7
mov byte [ebp + edx - 0x818], 0
lea ebx, [eax + 0xd5]
cmp dword [ebp - 0x848], 0
je 0x58c0a5
cmp ebx, 0x7fc
jg 0x58bfc7
mov eax, dword [ebp - 0x82c]
mov esi, dword [eax + 0x320]
mov eax, dword [esi]
mov dword [ebp + ebx - 0x818], eax
lea eax, [ebx + 4]
cmp eax, 0x7fc
jg 0x58bfc7
mov edx, dword [esi + 0xc]
shl edx, 4
add edx, 0x18
lea edi, [ebp - 0x818]
add eax, edi
call fcn.00504ace
lea eax, [ebx + 8]
cmp eax, 0x7fe
jg 0x58bfc7
mov edx, dword [esi + 8]
mov byte [ebp + ebx - 0x810], dl
movzx eax, byte [esi + 9]
mov byte [ebp + ebx - 0x80f], al
cmp ebx, 0x7f6
je 0x58bfc7
mov dl, byte [esi + 0xa]
mov byte [ebp + ebx - 0x80e], dl
cmp ebx, 0x7f5
je 0x58bfc7
mov dl, byte [esi + 0xb]
mov byte [ebp + ebx - 0x80d], dl
lea eax, [ebx + 0xc]
cmp eax, 0x7fc
jg 0x58bfc7
mov edx, dword [esi + 0xc]
add eax, edi
call fcn.00504ace
lea eax, [ebx + 0x10]
cmp eax, 0x7fc
jg 0x58bfc7
mov edx, dword [esi + 0x10]
mov dword [ebp + ebx - 0x808], edx
lea eax, [ebx + 0x14]
cmp eax, 0x7fc
jg 0x58bfc7
xor esi, esi
mov dword [ebp + ebx - 0x804], esi
lea eax, [ebx + 0x18]
cmp eax, 0x7fc
jg 0x58bfc7
xor ecx, ecx
mov dword [ebp + ebx - 0x800], ecx
lea eax, [ebx + 0x1c]
cmp eax, 0x7fc
jg 0x58bfc7
xor edx, edx
mov dword [ebp + ebx - 0x7fc], edx
lea esi, [ebp + ebx - 0x7ec]
add ebx, 0x20
xor eax, eax
mov dword [ebp - 0x840], eax
mov eax, dword [ebp - 0x82c]
mov edi, dword [eax + 0x320]
mov eax, dword [ebp - 0x840]
cmp eax, dword [edi + 0xc]
jae 0x58c0a5
cmp ebx, 0x7fc
jg 0x58c082
mov eax, dword [ebp - 0x840]
shl eax, 4
mov dword [ebp - 0x838], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp - 0x838]
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x830], eax
lea eax, [esi - 0xc]
call fcn.00504ace
lea eax, [ebx + 4]
cmp eax, 0x7fc
jg 0x58c082
lea eax, [esi - 8]
mov edx, dword [ebp - 0x830]
call fcn.00504ace
lea eax, [ebx + 8]
cmp eax, 0x7fc
jg 0x58c082
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp - 0x838]
mov edx, dword [eax + ecx + 8]
lea eax, [esi - 4]
call fcn.00504ace
lea eax, [ebx + 0xc]
cmp eax, 0x7fc
jg 0x58c082
mov eax, dword [edi + 0x20]
mov edi, dword [ebp - 0x838]
mov edx, dword [eax + edi + 0xc]
mov eax, esi
call fcn.00504ace
add ebx, 0x10
inc dword [ebp - 0x840]
add esi, 0x10
jmp 0x58bfd9
mov ebx, 0xd4
cmp dword [ebp - 0x848], 0
jne 0x58bee6
lea eax, [ebx - 0x60]
mov dword [ebp - 0x7bc], eax
mov eax, dword [ebp - 0x82c]
lea edi, [eax + 0x78]
xor eax, eax
mov dword [ebp - 0x85c], eax
mov esi, dword [ebp - 0x85c]
cmp dword [ebp - 0x850], esi
je 0x58ca92
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0xc]
add eax, 7
mov esi, 8
cdq
idiv esi
imul eax, ecx
mov dword [ebp - 0x838], eax
mov eax, 4
cmp dword [ebp - 0x838], eax
cmovge eax, dword [ebp - 0x838]
mov dword [ebp - 0x838], eax
mov eax, dword [edi]
mov dword [ebp - 0x830], eax
dec eax
jne 0x58c115
shl dword [ebp - 0x838], 2
mov eax, dword [edi + 8]
mov dword [ebp - 0x844], eax
mov dword [ebp - 0x840], 0x480
cmp eax, 0x7cff
jg 0x58c139
mov dword [ebp - 0x840], 0x240
cmp dword [ebp - 0x830], 1
jne 0x58c164
dec ecx
jg 0x58c14b
sar dword [ebp - 0x838], 1
mov eax, dword [ebp - 0x844]
mov esi, dword [ebp - 0x838]
imul eax, esi
mov ecx, 4
cdq
idiv ecx
jmp 0x58c168
imul eax, dword [edi + 0x10], 0x7d
mov dword [ebp - 0x84c], eax
lea eax, [ebx + 8]
mov dword [ebp - 0x864], eax
cmp ebx, 0x7fc
jg 0x58c255
mov dword [ebp + ebx - 0x818], 0x5453494c
lea edx, [ebx + 4]
cmp edx, 0x7fc
jg 0x58c255
xor eax, eax
mov dword [ebp + ebx - 0x814], eax
cmp ebx, 0x7f4
jg 0x58c255
mov esi, dword [ebp - 0x864]
mov dword [ebp + esi - 0x818], 0x6c727473
lea edx, [ebx + 0xc]
cmp edx, 0x7fc
jg 0x58c255
mov dword [ebp + ebx - 0x80c], 0x68727473
lea edx, [ebx + 0x10]
cmp edx, 0x7fc
jg 0x58c255
mov dword [ebp + ebx - 0x808], 0x38
lea edx, [ebx + 0x14]
cmp edx, 0x7fc
jg 0x58c255
mov dword [ebp + ebx - 0x804], 0x73647561
lea eax, [ebx + 0x18]
cmp eax, 0x7fc
jg 0x58c255
xor eax, eax
mov dword [ebp + ebx - 0x800], eax
lea eax, [ebx + 0x1c]
cmp eax, 0x7fc
jg 0x58c255
xor eax, eax
mov dword [ebp + ebx - 0x7fc], eax
lea eax, [ebx + 0x20]
cmp eax, 0x7fc
jg 0x58c255
xor esi, esi
mov dword [ebp + ebx - 0x7f8], esi
lea eax, [ebx + 0x24]
cmp eax, 0x7fc
jg 0x58c255
xor ecx, ecx
mov dword [ebp + ebx - 0x7f4], ecx
lea eax, [ebx + 0x28]
cmp dword [ebp - 0x830], 0x55
jne 0x58c336
cmp dword [edi + 0x14], 0
je 0x58c336
cmp eax, 0x7fc
jle 0x58c27e
lea eax, [ebx + 0x50]
jmp 0x58c46e
lea esi, [ebp - 0x818]
add eax, esi
mov edx, dword [ebp - 0x840]
call fcn.00504ace
lea eax, [ebx + 0x2c]
cmp eax, 0x7fc
jg 0x58c276
add eax, esi
mov edx, dword [ebp - 0x844]
call fcn.00504ace
lea eax, [ebx + 0x30]
cmp eax, 0x7fc
jg 0x58c276
xor edx, edx
mov dword [ebp + ebx - 0x7e8], edx
lea eax, [ebx + 0x34]
cmp eax, 0x7fc
jg 0x58c276
mov edx, dword [edi + 0x28]
add eax, esi
call fcn.00504ace
lea eax, [ebx + 0x38]
cmp eax, 0x7fc
jg 0x58c276
xor eax, eax
mov dword [ebp + ebx - 0x7e0], eax
lea eax, [ebx + 0x3c]
cmp eax, 0x7fc
jg 0x58c276
xor eax, eax
mov dword [ebp + ebx - 0x7dc], eax
lea eax, [ebx + 0x40]
cmp eax, 0x7fc
jg 0x58c276
xor eax, eax
mov dword [ebp + ebx - 0x7d8], eax
lea eax, [ebx + 0x44]
cmp eax, 0x7fc
jg 0x58c276
xor eax, eax
mov dword [ebp + ebx - 0x7d4], eax
lea eax, [ebx + 0x48]
cmp eax, 0x7fc
jg 0x58c276
jmp 0x58c440
cmp eax, 0x7fc
jg 0x58c45e
mov esi, dword [ebp - 0x838]
sar esi, 2
mov dword [ebp - 0x860], esi
lea esi, [ebp - 0x818]
add eax, esi
mov edx, dword [ebp - 0x860]
call fcn.00504ace
lea eax, [ebx + 0x2c]
cmp eax, 0x7fc
jg 0x58c45e
add eax, esi
mov edx, dword [ebp - 0x84c]
call fcn.00504ace
lea eax, [ebx + 0x30]
cmp eax, 0x7fc
jg 0x58c45e
xor eax, eax
mov dword [ebp + ebx - 0x7e8], eax
lea ecx, [ebx + 0x34]
cmp ecx, 0x7fc
jg 0x58c45e
mov dword [ebp - 0x868], ecx
mov eax, dword [edi + 0x20]
mov edx, dword [edi + 0x24]
shld edx, eax, 2
shl eax, 2
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x838]
mov dword [esp + 8], ecx
sar ecx, 0x1f
mov dword [esp + 0xc], ecx
call fcn.005a82a0
mov edx, eax
mov ecx, dword [ebp - 0x868]
lea eax, [esi + ecx]
call fcn.00504ace
lea eax, [ebx + 0x38]
cmp eax, 0x7fc
jg 0x58c45e
xor ecx, ecx
mov dword [ebp + ebx - 0x7e0], ecx
lea eax, [ebx + 0x3c]
cmp eax, 0x7fc
jg 0x58c45e
mov dword [ebp + ebx - 0x7dc], 0xffffffff
lea eax, [ebx + 0x40]
cmp eax, 0x7fc
jg 0x58c45e
add eax, esi
mov edx, dword [ebp - 0x860]
call fcn.00504ace
lea eax, [ebx + 0x44]
cmp eax, 0x7fc
jg 0x58c45e
xor edx, edx
mov dword [ebp + ebx - 0x7d4], edx
lea eax, [ebx + 0x48]
cmp eax, 0x7fc
jg 0x58c45e
xor eax, eax
mov dword [ebp + ebx - 0x7d0], eax
lea eax, [ebx + 0x4c]
cmp eax, 0x7fc
jg 0x58c45e
mov dword [ebp + ebx - 0x7cc], 0x66727473
lea eax, [ebx + 0x50]
cmp dword [ebp - 0x830], 0x55
jne 0x58c75a
cmp dword [edi + 0x14], 0
je 0x58c5d1
cmp eax, 0x7fc
jg 0x58c752
mov dword [ebp + eax - 0x818], 0x1e
lea eax, [ebx + 0x54]
cmp eax, 0x7fe
jg 0x58c752
mov byte [ebp + ebx - 0x7c4], 0x55
mov byte [ebp + ebx - 0x7c3], 0
lea edx, [ebx + 0x56]
cmp edx, 0x7fe
jg 0x58c752
mov eax, dword [edi + 4]
mov byte [ebp + ebx - 0x7c2], al
mov byte [ebp + ebx - 0x7c1], ah
lea eax, [ebx + 0x58]
cmp eax, 0x7fc
jg 0x58c752
lea esi, [ebp - 0x818]
add eax, esi
mov edx, dword [ebp - 0x844]
call fcn.00504ace
lea eax, [ebx + 0x5c]
cmp eax, 0x7fc
jg 0x58c752
imul edx, dword [edi + 0x10], 0x7d
add eax, esi
call fcn.00504ace
lea eax, [ebx + 0x60]
cmp eax, 0x7fe
jg 0x58c752
mov cl, byte [ebp - 0x840]
mov byte [ebp + ebx - 0x7b8], cl
mov eax, dword [ebp - 0x840]
shr eax, 8
mov byte [ebp + ebx - 0x7b7], al
lea ecx, [ebx + 0x62]
cmp ecx, 0x7fe
jg 0x58c752
mov edx, dword [edi + 0xc]
mov byte [ebp + ebx - 0x7b6], dl
mov byte [ebp + ebx - 0x7b5], dh
lea edx, [ebx + 0x64]
cmp edx, 0x7fe
jg 0x58c752
mov byte [ebp + ebx - 0x7b4], 0xc
mov byte [ebp + ebx - 0x7b3], 0
lea edx, [ebx + 0x66]
cmp edx, 0x7fe
jg 0x58c752
mov byte [ebp + ebx - 0x7b2], 1
mov byte [ebp + ebx - 0x7b1], 0
lea edx, [ebx + 0x68]
cmp edx, 0x7fc
jg 0x58c752
mov dword [ebp + ebx - 0x7b0], 2
lea edx, [ebx + 0x6c]
cmp edx, 0x7fe
jg 0x58c752
mov cl, byte [ebp - 0x840]
mov byte [ebp + ebx - 0x7ac], cl
mov byte [ebp + ebx - 0x7ab], al
jmp 0x58c71e
cmp eax, 0x7fc
jg 0x58c752
mov dword [ebp + eax - 0x818], 0x1e
lea eax, [ebx + 0x54]
cmp eax, 0x7fe
jg 0x58c752
mov byte [ebp + ebx - 0x7c4], 0x55
mov byte [ebp + ebx - 0x7c3], 0
lea edx, [ebx + 0x56]
cmp edx, 0x7fe
jg 0x58c752
mov eax, dword [edi + 4]
mov byte [ebp + ebx - 0x7c2], al
mov byte [ebp + ebx - 0x7c1], ah
lea eax, [ebx + 0x58]
cmp eax, 0x7fc
jg 0x58c752
lea esi, [ebp - 0x818]
add eax, esi
mov edx, dword [ebp - 0x844]
call fcn.00504ace
lea eax, [ebx + 0x5c]
cmp eax, 0x7fc
jg 0x58c752
imul edx, dword [edi + 0x10], 0x7d
add eax, esi
call fcn.00504ace
lea eax, [ebx + 0x60]
cmp eax, 0x7fe
jg 0x58c752
mov edx, dword [ebp - 0x838]
sar edx, 2
mov byte [ebp + ebx - 0x7b8], dl
mov eax, dword [ebp - 0x838]
sar eax, 0xa
mov byte [ebp + ebx - 0x7b7], al
lea edx, [ebx + 0x62]
cmp edx, 0x7fe
jg 0x58c752
mov eax, dword [edi + 0xc]
mov byte [ebp + ebx - 0x7b6], al
mov byte [ebp + ebx - 0x7b5], ah
lea eax, [ebx + 0x64]
cmp eax, 0x7fe
jg 0x58c752
mov byte [ebp + ebx - 0x7b4], 0xc
mov byte [ebp + ebx - 0x7b3], 0
lea eax, [ebx + 0x66]
cmp eax, 0x7fe
jg 0x58c752
mov byte [ebp + ebx - 0x7b2], 1
mov byte [ebp + ebx - 0x7b1], 0
lea eax, [ebx + 0x68]
cmp eax, 0x7fc
jg 0x58c752
mov dword [ebp + ebx - 0x7b0], 2
lea eax, [ebx + 0x6c]
cmp eax, 0x7fe
jg 0x58c752
mov cl, byte [ebp - 0x840]
mov byte [ebp + ebx - 0x7ac], cl
mov eax, dword [ebp - 0x840]
mov byte [ebp + ebx - 0x7ab], ah
lea eax, [ebx + 0x6e]
cmp eax, 0x7fe
jg 0x58c752
mov byte [ebp + ebx - 0x7aa], 1
mov byte [ebp + ebx - 0x7a9], 0
lea eax, [ebx + 0x70]
cmp eax, 0x7fe
jg 0x58c752
mov byte [ebp + ebx - 0x7a8], 0
mov byte [ebp + ebx - 0x7a7], 0
lea esi, [ebx + 0x72]
jmp 0x58c853
cmp eax, 0x7fc
jg 0x58c850
mov dword [ebp + eax - 0x818], 0x12
lea eax, [ebx + 0x54]
cmp eax, 0x7fe
jg 0x58c850
mov cl, byte [ebp - 0x830]
mov byte [ebp + ebx - 0x7c4], cl
mov eax, dword [ebp - 0x830]
mov byte [ebp + ebx - 0x7c3], ah
lea edx, [ebx + 0x56]
cmp edx, 0x7fe
jg 0x58c850
mov eax, dword [edi + 4]
mov byte [ebp + ebx - 0x7c2], al
mov byte [ebp + ebx - 0x7c1], ah
lea eax, [ebx + 0x58]
cmp eax, 0x7fc
jg 0x58c850
lea esi, [ebp - 0x818]
add eax, esi
mov edx, dword [ebp - 0x844]
call fcn.00504ace
lea eax, [ebx + 0x5c]
cmp eax, 0x7fc
jg 0x58c850
add eax, esi
mov edx, dword [ebp - 0x84c]
call fcn.00504ace
lea eax, [ebx + 0x60]
cmp eax, 0x7fe
jg 0x58c850
mov edx, dword [ebp - 0x838]
sar edx, 2
mov byte [ebp + ebx - 0x7b8], dl
mov eax, dword [ebp - 0x838]
sar eax, 0xa
mov byte [ebp + ebx - 0x7b7], al
lea edx, [ebx + 0x62]
cmp edx, 0x7fe
jg 0x58c850
mov eax, dword [edi + 0xc]
mov byte [ebp + ebx - 0x7b6], al
mov byte [ebp + ebx - 0x7b5], ah
lea eax, [ebx + 0x64]
cmp eax, 0x7fe
jg 0x58c850
mov byte [ebp + ebx - 0x7b4], 0
mov byte [ebp + ebx - 0x7b3], 0
lea esi, [ebx + 0x66]
cmp dword [ebp - 0x848], 0
je 0x58ca6c
mov ecx, dword [edi + 0x4c]
test ecx, ecx
je 0x58ca82
cmp esi, 0x7fc
jg 0x58c968
mov eax, dword [ecx]
mov dword [ebp + esi - 0x818], eax
lea eax, [esi + 4]
cmp eax, 0x7fc
jg 0x58c968
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x838], ecx
shl edx, 4
add edx, 0x18
lea ecx, [ebp - 0x818]
add eax, ecx
call fcn.00504ace
lea eax, [esi + 8]
cmp eax, 0x7fe
mov ecx, dword [ebp - 0x838]
jg 0x58c968
mov edx, dword [ecx + 8]
mov byte [ebp + esi - 0x810], dl
movzx eax, byte [ecx + 9]
mov byte [ebp + esi - 0x80f], al
cmp esi, 0x7f6
je 0x58c968
mov dl, byte [ecx + 0xa]
mov byte [ebp + esi - 0x80e], dl
cmp esi, 0x7f5
je 0x58c968
mov dl, byte [ecx + 0xb]
mov byte [ebp + esi - 0x80d], dl
lea eax, [esi + 0xc]
cmp eax, 0x7fc
jg 0x58c968
mov edx, dword [ecx + 0xc]
lea ecx, [ebp - 0x818]
add eax, ecx
call fcn.00504ace
lea eax, [esi + 0x10]
cmp eax, 0x7fc
mov ecx, dword [ebp - 0x838]
jg 0x58c968
mov edx, dword [ecx + 0x10]
mov dword [ebp + esi - 0x808], edx
lea eax, [esi + 0x14]
cmp eax, 0x7fc
jg 0x58c968
xor eax, eax
mov dword [ebp + esi - 0x804], eax
lea eax, [esi + 0x18]
cmp eax, 0x7fc
jg 0x58c968
xor eax, eax
mov dword [ebp + esi - 0x800], eax
lea eax, [esi + 0x1c]
cmp eax, 0x7fc
jg 0x58c968
xor eax, eax
mov dword [ebp + esi - 0x7fc], eax
lea eax, [ebp + esi - 0x7ec]
mov dword [ebp - 0x838], eax
add esi, 0x20
xor eax, eax
mov dword [ebp - 0x830], eax
mov eax, dword [ebp - 0x830]
cmp eax, dword [ecx + 0xc]
jae 0x58ca6c
cmp esi, 0x7fc
jg 0x58ca57
mov eax, dword [ebp - 0x830]
shl eax, 4
mov dword [ebp - 0x840], eax
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x84c], ecx
mov ecx, dword [ebp - 0x840]
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x844], eax
mov eax, dword [ebp - 0x838]
sub eax, 0xc
call fcn.00504ace
lea eax, [esi + 4]
cmp eax, 0x7fc
mov ecx, dword [ebp - 0x84c]
jg 0x58ca57
mov eax, dword [ebp - 0x838]
sub eax, 8
mov edx, dword [ebp - 0x844]
call fcn.00504ace
lea eax, [esi + 8]
cmp eax, 0x7fc
mov ecx, dword [ebp - 0x84c]
jg 0x58ca57
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x844], ecx
mov ecx, dword [ebp - 0x840]
mov edx, dword [eax + ecx + 8]
mov eax, dword [ebp - 0x838]
sub eax, 4
call fcn.00504ace
lea eax, [esi + 0xc]
cmp eax, 0x7fc
mov ecx, dword [ebp - 0x844]
jg 0x58ca57
mov eax, dword [ecx + 0x20]
mov ecx, dword [ebp - 0x840]
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [ebp - 0x838]
call fcn.00504ace
mov ecx, dword [ebp - 0x844]
add esi, 0x10
inc dword [ebp - 0x830]
add dword [ebp - 0x838], 0x10
jmp 0x58c980
mov edx, esi
mov eax, dword [ebp - 0x864]
sub edx, eax
lea eax, [ebp + ebx - 0x814]
call fcn.00504ace
inc dword [ebp - 0x85c]
add edi, 0x50
mov ebx, esi
jmp 0x58c0bf
cmp dword [ebp - 0x848], 0
je 0x58cb35
cmp ebx, 0x7fc
jg 0x58cb32
lea eax, [ebp - 0x818]
mov dword [ebp + ebx - 0x818], 0x5453494c
lea edx, [ebx + 4]
cmp edx, 0x7fc
jg 0x58cb32
mov dword [ebp + ebx - 0x814], 0x10
lea edx, [ebx + 8]
cmp edx, 0x7fc
jg 0x58cb32
mov dword [ebp + ebx - 0x810], 0x6c6d646f
lea edx, [ebx + 0xc]
cmp edx, 0x7fc
jg 0x58cb32
mov dword [ebp + ebx - 0x80c], 0x686c6d64
lea edx, [ebx + 0x10]
cmp edx, 0x7fc
jg 0x58cb32
mov dword [ebp + ebx - 0x808], 4
lea ecx, [ebx + 0x14]
cmp ecx, 0x7fc
jg 0x58cb32
mov edi, dword [ebp - 0x82c]
mov edx, dword [edi + 0x340]
add eax, ecx
call fcn.00504ace
add ebx, 0x18
lea eax, [ebx - 0x14]
mov dword [ebp - 0x808], eax
lea edx, [ebx + 4]
lea eax, [ebp - 0x818]
lea edi, [eax + edx]
mov dword [ebp - 0x840], edi
cmp ebx, 0x7fc
jg 0x58cb9d
mov dword [ebp + ebx - 0x818], 0x5453494c
cmp edx, 0x7fc
jg 0x58cb9d
mov dword [edi], 0x4c
lea edx, [ebx + 8]
cmp edx, 0x7fc
jg 0x58cb9d
mov dword [ebp + ebx - 0x810], 0x4f464e49
lea edx, [ebx + 0xc]
cmp edx, 0x7fc
jg 0x58cb9d
mov dword [ebp + ebx - 0x80c], 0x54465349
lea esi, [ebx + 0x10]
mov edx, 0x6127e4
mov ecx, 0x10
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], str.0.7.1_revrelease
mov dword [esp + 8], str.GPAC_avilib
mov dword [esp + 4], str._s__s
mov dword [esp], edx
call fcn.005ae188
mov dword [esp], 0x6127e4
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
lea edi, [eax + 1]
mov dword [ebp - 0x838], edi
mov edx, edi
test dl, 1
je 0x58cbf5
add eax, 2
mov dword [ebp - 0x838], eax
cmp esi, 0x7fc
jg 0x58cc09
lea eax, [ebp + esi - 0x818]
call fcn.00504ace
add ebx, 0x14
lea eax, [ebp - 0x818]
lea edx, [eax + ebx]
mov edi, edx
mov ecx, dword [ebp - 0x838]
xor eax, eax
rep stosb byte es:[edi], al
mov esi, 0x6127e4
mov edi, edx
mov ecx, dword [ebp - 0x838]
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x838]
lea esi, [ebx + eax]
lea edx, [eax + 0xc]
mov eax, dword [ebp - 0x840]
call fcn.00504ace
mov ebx, 0x7ec
sub ebx, esi
test ebx, ebx
jg 0x58cc87
cmp dword [0x5af048], 0
je 0x58cc7b
mov dword [0x611418], 1
mov dword [0x611414], 2
mov dword [esp], str._avilib__AVI_close_output_file:__of_header_bytes_too_small_n
call fcn.004268ea
mov dword [esp], 1
call sub.api_ms_win_crt_runtime_l1_1_0.dll_exit
mov dword [ebp + esi - 0x818], 0x4b4e554a
lea eax, [ebp + esi - 0x814]
mov edx, ebx
call fcn.00504ace
lea edx, [ebp + esi - 0x810]
mov edi, edx
mov ecx, ebx
xor eax, eax
rep stosb byte es:[edi], al
mov dword [ebp - 0x24], 0x5453494c
mov eax, dword [ebp - 0x858]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0x69766f6d
xor edx, edx
mov dword [esp + 0xc], edx
mov dword [esp + 4], edx
mov dword [esp + 8], edx
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__fseeki64]
mov ebx, eax
sar ebx, 0x1f
inc ebx
jne 0x58ccff
inc eax
jne 0x58ccff
mov dword [0x611760], 6
jmp 0x58cdf3
lea edx, [ebp - 0x818]
mov ecx, 0x800
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax]
call fcn.00504a8f
cmp eax, 0x800
jne 0x58ccf0
mov eax, dword [ebp - 0x82c]
cmp dword [eax + 0x324], 0
je 0x58cdf3
mov esi, 1
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax + 0x320]
cmp esi, dword [eax + 0xc]
jae 0x58cdf3
lea ebx, [esi*4]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + esi*4]
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
add edx, 4
adc ecx, 0
xor eax, eax
mov dword [esp], eax
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax]
call fcn.00425b5e
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax + 0x320]
mov eax, dword [eax + 0x24]
inc esi
mov edx, dword [eax + ebx + 4]
mov eax, dword [eax + ebx]
mov ebx, dword [edx + 0x18]
sub ebx, dword [eax + 0x18]
lea eax, [ebx - 8]
mov dword [ebp - 0x81c], eax
lea edi, [ebp - 0x81c]
mov ecx, 4
mov edx, edi
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax]
call fcn.00504a8f
mov dword [esp], 1
mov edx, 8
xor ecx, ecx
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax]
call fcn.00425b5e
sub ebx, 0x14
mov dword [ebp - 0x81c], ebx
mov ecx, 4
mov edx, edi
mov eax, dword [ebp - 0x82c]
mov eax, dword [eax]
call fcn.00504a8f
jmp 0x58cd36
add esp, 0x86c
pop ebx
pop esi
pop edi
pop ebp
ret