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

Disassembly:
push 0xffffffffffffffff
push 0x5a9728
mov eax, dword fs:[0]
push eax
sub esp, 0x74
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6336a0]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov edi, dword [esp + 0x98]
xor esi, esi
call fcn.00555692
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x45c3ed
push 0x80004005
call fcn.00401f90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
xor ebx, ebx
mov dword [esp + 0x90], ebx
mov ecx, dword [edi]
mov ebp, dword [ecx - 0xc]
push 0xffffffffffffffff
lea ecx, [edi + 0x94]
push ebx
call fcn.0055d23e
test ebp, ebp
jle 0x45c676
mov dword [esp + 0x18], 1
lea esp, [esp]
test esi, esi
jl 0x45cdf1
mov eax, dword [edi]
mov edx, dword [eax - 0xc]
cmp esi, edx
jg 0x45cdf1
movzx eax, word [eax + esi*2]
movzx ecx, ax
cmp cx, 0xd
je 0x45c467
cmp esi, edx
jg 0x45cdf1
movzx eax, ax
cmp ax, 0xa
jne 0x45c591
mov eax, esi
sub eax, ebx
push eax
push ebx
lea edx, [esp + 0x24]
push edx
mov ecx, edi
call fcn.00423ae0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x94], 1
call fcn.00402330
mov byte [esp + 0x90], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45c4b3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
test eax, eax
jle 0x45c52a
push 0x5e9bd0
push ecx
call fcn.0057781d
add esp, 8
test eax, eax
je 0x45c541
mov ecx, dword [esp + 0x14]
sub eax, ecx
sar eax, 1
js 0x45c541
cmp dword [ecx - 0xc], 0
jl 0x45c541
push 0x5dc914
push ecx
call fcn.0057781d
add esp, 8
test eax, eax
je 0x45c541
sub eax, dword [esp + 0x14]
sar eax, 1
test eax, eax
jle 0x45c541
lea edi, [esp + 0x14]
call fcn.0045c250
mov ecx, dword [esp + 0x98]
mov eax, dword [ecx + 0x9c]
add ecx, 0x94
mov edx, edi
push edx
push eax
call fcn.0055d4af
mov edi, dword [esp + 0x98]
jmp 0x45c541
mov eax, dword [edi + 0x9c]
lea ecx, [edi + 0x94]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.0055d4af
lea eax, [ebp - 1]
cmp esi, eax
jge 0x45c591
cmp dword [esp + 0x18], 0
jl 0x45cdf1
mov eax, dword [edi]
mov edx, dword [eax - 0xc]
mov ebx, dword [esp + 0x18]
cmp ebx, edx
jg 0x45cdf1
movzx eax, word [eax + esi*2 + 2]
movzx ecx, ax
cmp cx, 0xa
je 0x45c583
cmp ebx, edx
jg 0x45cdf1
movzx eax, ax
cmp ax, 0xd
jne 0x45c58d
add esi, 1
add ebx, 1
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x18]
add dword [esp + 0x18], 1
add esi, 1
cmp esi, ebp
jl 0x45c430
cmp ebx, ebp
jge 0x45c676
sub ebp, ebx
push ebp
push ebx
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0xa4]
call fcn.00423ae0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x94], 2
call fcn.00402330
mov byte [esp + 0x90], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45c5f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ebx, [esp + 0x14]
call fcn.004146b0
mov edi, eax
call fcn.00414730
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x45c676
jl 0x45c676
push 0x5e9bd0
push ecx
call fcn.0057781d
add esp, 8
test eax, eax
je 0x45c676
mov ecx, dword [esp + 0x14]
sub eax, ecx
sar eax, 1
js 0x45c676
cmp dword [ecx - 0xc], 0
jl 0x45c676
push 0x5dc914
push ecx
call fcn.0057781d
add esp, 8
test eax, eax
je 0x45c676
sub eax, dword [esp + 0x14]
sar eax, 1
test eax, eax
jle 0x45c676
mov edi, ebx
call fcn.0045c250
mov ecx, dword [esp + 0x98]
mov eax, dword [ecx + 0x9c]
add ecx, 0x94
mov edx, ebx
push edx
push eax
call fcn.0055d4af
call fcn.00555692
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x45c690
push 0x80004005
call fcn.00401f90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x60]
mov byte [esp + 0x90], 3
call fcn.0055d17f
lea ecx, [esp + 0x74]
mov byte [esp + 0x90], 4
call fcn.0055d17f
mov ecx, dword [esp + 0x98]
xor ebx, ebx
mov byte [esp + 0x90], 5
cmp dword [ecx + 0x9c], ebx
mov dword [esp + 0x18], ebx
jle 0x45ccac
test ebx, ebx
jl 0x45cdfb
mov ebp, dword [esp + 0x98]
add ebp, 0x94
cmp ebx, dword [ebp + 8]
jge 0x45cdfb
mov eax, dword [ebp + 4]
lea ecx, [ebx*4]
mov edx, dword [eax + ecx]
mov edx, dword [edx - 0xc]
add eax, ecx
xor esi, esi
test edx, edx
mov dword [esp + 0x1c], edx
jle 0x45cbc6
cmp ebx, dword [ebp + 8]
jge 0x45cdfb
mov eax, dword [ebp + 4]
lea ecx, [ebx*4]
add eax, ecx
test esi, esi
jl 0x45cdf1
mov eax, dword [eax]
cmp esi, dword [eax - 0xc]
jg 0x45cdf1
movzx eax, word [eax + esi*2]
cmp ax, 0x5b
jne 0x45cbc6
mov ebx, dword [esp + 0x1c]
add ebx, 0xffffffff
cmp esi, ebx
lea edi, [esi + 1]
jge 0x45cbb6
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov ecx, ebp
add esi, 1
call fcn.004bfa80
test esi, esi
jl 0x45cdf1
mov ecx, esi
call fcn.0044a290
movzx eax, ax
cmp ax, 0x5d
je 0x45c79f
cmp esi, ebx
jl 0x45c770
jmp 0x45cbb6
mov eax, esi
sub eax, edi
push eax
push edi
lea eax, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x24]
mov ecx, ebp
call fcn.004bfa80
mov ecx, eax
call fcn.00423ae0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x94], 6
call fcn.00402330
lea ecx, [esp + 0x24]
mov byte [esp + 0x90], 5
call fcn.00401f20
lea edi, [esp + 0x14]
call fcn.00414730
mov ebx, edi
call fcn.004146b0
push 3
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call fcn.00414630
mov eax, dword [eax]
push 0x5ebfa4
push eax
call fcn.00577334
add esp, 8
test eax, eax
lea ecx, [esp + 0x28]
sete bl
call fcn.00401f20
test bl, bl
je 0x45c864
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
add eax, 0xfffffffd
push eax
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call fcn.00401a60
mov ecx, dword [esp + 0x98]
push eax
add ecx, 4
mov byte [esp + 0x94], 7
call fcn.00402310
lea ecx, [esp + 0x2c]
mov byte [esp + 0x90], 5
call fcn.00401f20
jmp 0x45cbb3
push 3
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00414630
mov eax, dword [eax]
push 0x5ebfac
push eax
call fcn.00577334
add esp, 8
test eax, eax
lea ecx, [esp + 0x30]
sete bl
call fcn.00401f20
test bl, bl
je 0x45c8dd
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
add eax, 0xfffffffd
push eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x1c]
call fcn.00401a60
mov ecx, dword [esp + 0x98]
push eax
add ecx, 8
mov byte [esp + 0x94], 8
call fcn.00402310
lea ecx, [esp + 0x34]
mov byte [esp + 0x90], 5
call fcn.00401f20
jmp 0x45cbb3
push 3
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00414630
mov eax, dword [eax]
push 0x5ebfb4
push eax
call fcn.00577334
add esp, 8
test eax, eax
lea ecx, [esp + 0x38]
sete bl
call fcn.00401f20
test bl, bl
je 0x45c956
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
add eax, 0xfffffffd
push eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x1c]
call fcn.00401a60
mov ecx, dword [esp + 0x98]
push eax
add ecx, 0xc
mov byte [esp + 0x94], 9
call fcn.00402310
lea ecx, [esp + 0x3c]
mov byte [esp + 0x90], 5
call fcn.00401f20
jmp 0x45cbb3
push 3
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00414630
mov eax, dword [eax]
push 0x5ebfbc
push eax
call fcn.00577334
add esp, 8
test eax, eax
lea ecx, [esp + 0x40]
sete bl
call fcn.00401f20
test bl, bl
je 0x45c9cf
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
add eax, 0xfffffffd
push eax
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1c]
call fcn.00401a60
mov ecx, dword [esp + 0x98]
push eax
add ecx, 0x10
mov byte [esp + 0x94], 0xa
call fcn.00402310
lea ecx, [esp + 0x44]
mov byte [esp + 0x90], 5
call fcn.00401f20
jmp 0x45cbb3
push 7
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00414630
mov eax, dword [eax]
push str.offset:
push eax
call fcn.00577334
add esp, 8
test eax, eax
lea ecx, [esp + 0x48]
sete bl
call fcn.00401f20
test bl, bl
lea ecx, [esp + 0x14]
je 0x45ca3d
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
add eax, 0xfffffff9
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00401a60
mov eax, dword [eax]
push eax
call fcn.00577818
mov ecx, dword [esp + 0x9c]
mov dword [ecx + 0x14], eax
add esp, 4
lea ecx, [esp + 0x4c]
call fcn.00401f20
jmp 0x45cbb3
push 6
lea edx, [esp + 0x54]
push edx
call fcn.00414630
mov eax, dword [eax]
push str.audio:
push eax
call fcn.00577334
add esp, 8
test eax, eax
lea ecx, [esp + 0x50]
sete bl
call fcn.00401f20
test bl, bl
mov eax, dword [esp + 0x14]
je 0x45cb19
cmp dword [eax - 0xc], 0
jge 0x45ca7e
or edi, 0xffffffff
jmp 0x45ca9d
push str.http:
push eax
call fcn.0057781d
add esp, 8
test eax, eax
jne 0x45ca95
or edi, 0xffffffff
jmp 0x45ca9d
sub eax, dword [esp + 0x14]
sar eax, 1
mov edi, eax
push edi
push 0x22
lea ecx, [esp + 0x1c]
call fcn.004145b0
test edi, edi
jle 0x45cbb3
test eax, eax
jle 0x45cbb3
sub eax, edi
push eax
push edi
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x20]
call fcn.00423ae0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x94], 0xb
call fcn.00402330
lea ecx, [esp + 0x54]
mov byte [esp + 0x90], 5
call fcn.00401f20
lea ebx, [esp + 0x20]
call fcn.004146b0
mov edi, eax
call fcn.00414730
mov ecx, dword [esp + 0x98]
mov eax, dword [ecx + 0x4c]
add ecx, 0x44
mov edx, ebx
push edx
push eax
call fcn.0055d4af
jmp 0x45cbb3
cmp dword [eax - 0xc], 0
jl 0x45cb57
push str.loop
push eax
call fcn.0057781d
add esp, 8
test eax, eax
je 0x45cb57
sub eax, dword [esp + 0x14]
sar eax, 1
js 0x45cb57
lea eax, [esp + 0x74]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x64]
push ecx
mov ecx, ebp
call fcn.004bfa80
mov edi, eax
call fcn.0045ce10
jmp 0x45cbb3
lea ecx, [esp + 0x14]
call fcn.0045bef0
mov ebx, eax
test ebx, ebx
jl 0x45cbb3
mov eax, dword [esp + 0x18]
mov ecx, ebp
call fcn.004bfa80
mov edi, eax
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jl 0x45cb93
push str._img
push eax
call fcn.0057781d
add esp, 8
test eax, eax
je 0x45cb93
sub eax, dword [edi]
sar eax, 1
jns 0x45cb9f
mov ecx, dword [esp + 0x98]
add ecx, 0x1c
jmp 0x45cba9
mov ecx, dword [esp + 0x98]
add ecx, 0x6c
mov eax, dword [ecx + 8]
push ebx
push eax
call fcn.0055d779
add esi, 1
mov edx, dword [esp + 0x1c]
cmp esi, edx
mov ebx, dword [esp + 0x18]
jl 0x45c721
cmp ebx, dword [ebp + 8]
jge 0x45cdfb
mov ecx, dword [ebp + 4]
sub edx, esi
push edx
lea eax, [ebx*4]
push esi
lea edx, [esp + 0x60]
add ecx, eax
push edx
call fcn.00423ae0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x94], 0xc
call fcn.00402330
mov byte [esp + 0x90], 5
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45cc23
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x45cc47
push str._img
push eax
call fcn.0057781d
add esp, 8
test eax, eax
je 0x45cc47
sub eax, dword [esp + 0x14]
sar eax, 1
jns 0x45cc77
mov ecx, dword [esp + 0x98]
mov eax, dword [ecx + 0x24]
sub eax, dword [ecx + 0x38]
test eax, eax
jle 0x45cc92
mov esi, ecx
add esi, 0x30
mov edi, eax
nop
mov eax, dword [esi + 8]
lea ecx, [esp + 0x14]
push ecx
push eax
mov ecx, esi
call fcn.0055d4af
sub edi, 1
jne 0x45cc60
jmp 0x45cc92
mov eax, dword [esp + 0x98]
lea edx, [eax + 0x80]
push edx
add eax, 0x58
push eax
lea edi, [esp + 0x1c]
call fcn.0045ce10
mov eax, dword [esp + 0x98]
add ebx, 1
cmp ebx, dword [eax + 0x9c]
mov dword [esp + 0x18], ebx
jl 0x45c6e3
mov ecx, dword [esp + 0x98]
cmp dword [ecx + 0x60], 0
jne 0x45cd53
mov edi, dword [esp + 0x68]
test edi, edi
jle 0x45cd53
mov ebx, ecx
push 0xffffffffffffffff
lea ebp, [ebx + 0x58]
push edi
mov ecx, ebp
mov dword [esp + 0x5c], edi
call fcn.0055d23e
push 0xffffffffffffffff
add ebx, 0x80
push edi
mov ecx, ebx
call fcn.0055d23e
xor esi, esi
test edi, edi
jle 0x45cd53
test esi, esi
jl 0x45cdfb
cmp esi, dword [esp + 0x68]
jge 0x45cdfb
cmp esi, dword [ebp + 8]
mov edx, dword [esp + 0x64]
lea edi, [esi*4]
lea eax, [edx + edi]
jge 0x45cdfb
mov ecx, dword [ebp + 4]
add ecx, edi
push eax
call fcn.00402330
cmp esi, dword [esp + 0x7c]
jge 0x45cdfb
mov eax, dword [esp + 0x78]
add eax, edi
cmp esi, dword [ebx + 8]
jge 0x45cdfb
mov ecx, dword [ebx + 4]
add ecx, edi
push eax
call fcn.00402330
add esi, 1
cmp esi, dword [esp + 0x54]
jl 0x45ccf2
mov ecx, dword [esp + 0x98]
or esi, 0xffffffff
mov dword [ecx + 0xa8], esi
lea ecx, [esp + 0x74]
mov byte [esp + 0x90], 4
call fcn.0055d21d
lea ecx, [esp + 0x60]
mov byte [esp + 0x90], 3
call fcn.0055d21d
mov byte [esp + 0x90], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45cdac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x90], esi
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], esi
dec esi
test esi, esi
jg 0x45cdd0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret 4
push 0x80070057
call fcn.00401f90
call fcn.00555520
int3