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

Disassembly:
push ebp
sub esp, 0x5c
mov eax, 0x6d6e76
call fcn.006899cc
sub esp, 0xf8
push ebx
xor edx, edx
mov ebx, ecx
push esi
push edi
mov dword [ebp + 0x48], ebx
cmp byte [ebp + 0x68], dl
je 0x4c2710
push dword [ebp + 0x70]
lea ecx, [ebx + 0x20]
push dword [ebp + 0x6c]
mov eax, dword [ecx]
push edx
push ebx
call dword [eax]
xor eax, eax
mov esi, eax
cmp dword [ebx + 0x1f0], eax
jbe 0x4c25f3
lea edi, [ebx + 0x1e0]
mov eax, dword [edi + 0xc]
lea ecx, [ebp + 8]
add eax, esi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], eax
call fcn.00445f03
push dword [ebx + 0x6e8]
mov ecx, dword [eax]
call fcn.004fd4a0
inc esi
cmp esi, dword [ebx + 0x1f0]
jb 0x4c25ca
mov esi, dword [0x7e67e4]
cmp esi, dword [ebx + 0x7bc]
jl 0x4c2645
jg 0x4c2611
mov ecx, dword [0x7e67e0]
cmp ecx, dword [ebx + 0x7b8]
jb 0x4c264b
mov ecx, ebx
call fcn.004b804d
mov ecx, dword [0x7e67e0]
mov eax, dword [0x7e67e4]
add ecx, 0xa
push 0
pop edi
adc eax, edi
mov dword [ebx + 0x7b8], ecx
mov dword [ebx + 0x7bc], eax
mov esi, dword [0x7e67e4]
mov ecx, dword [0x7e67e0]
jmp 0x4c264d
mov ecx, dword [0x7e67e0]
xor edi, edi
mov edx, dword [ebx + 0xc0]
mov eax, dword [ebx + 0xc4]
add edx, 0xa8c0
adc eax, edi
cmp esi, eax
jl 0x4c267e
jg 0x4c266b
cmp ecx, edx
jb 0x4c267e
mov ecx, ebx
call fcn.004cdc91
mov esi, dword [0x7e67e4]
mov ecx, dword [0x7e67e0]
mov edx, dword [ebx + 0xc8]
mov eax, dword [ebx + 0xcc]
add edx, 0x15180
adc eax, edi
cmp esi, eax
jl 0x4c26bb
jg 0x4c269c
cmp ecx, edx
jb 0x4c26bb
mov dword [ebx + 0xc8], ecx
mov ecx, ebx
mov dword [ebx + 0xcc], esi
call fcn.004b89b7
mov esi, dword [0x7e67e4]
mov ecx, dword [0x7e67e0]
mov edx, dword [0x7e5a08]
test edx, edx
je 0x4c26dd
xor eax, eax
add edx, dword [ebx + 0x570]
adc eax, dword [ebx + 0x574]
cmp esi, eax
jg 0x4c2704
jl 0x4c26dd
cmp ecx, edx
jae 0x4c2704
mov eax, dword [ebx + 0x550]
test eax, eax
jg 0x4c26ea
push 0x3c
pop eax
imul eax, eax, 0x3c
cdq
add eax, dword [ebx + 0x570]
adc edx, dword [ebx + 0x574]
cmp esi, edx
jl 0x4c270e
jg 0x4c2704
cmp ecx, eax
jb 0x4c270e
xor eax, eax
mov ecx, ebx
push eax
call fcn.004b423e
xor edx, edx
mov al, byte [ebx + 0x648]
test al, al
je 0x4c2735
sub al, 1
mov byte [ebx + 0x648], al
jne 0x4c2735
test byte [ebx + 0x14c], 1
je 0x4c2735
push edx
mov ecx, ebx
call fcn.004cf285
call fcn.004a2654
mov edi, eax
mov al, byte [ebp + 0x68]
test al, al
je 0x4c2812
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + pe_nt_image_headers32]
test al, al
je 0x4c280f
test edi, edi
jle 0x4c280f
mov ecx, dword [ebx + 0x1fc]
xor eax, eax
mov edx, dword [ebx + 0x1f8]
mov esi, eax
sub ecx, edx
sar ecx, 2
test ecx, ecx
je 0x4c27a4
mov eax, dword [edx]
mov al, byte [eax + 0x6a]
test al, 1
jne 0x4c2787
test al, 0x10
jne 0x4c2793
push 4
pop eax
inc esi
add edx, eax
cmp esi, ecx
jne 0x4c277a
jmp 0x4c27a4
push 3
push edx
mov ecx, ebx
call fcn.004b6227
lea eax, [edi - 1]
test eax, eax
jle 0x4c280f
test byte [ebx + 0x14c], 0x40
jne 0x4c27b6
cmp byte [0x7c0ddd], 0
je 0x4c280f
mov eax, dword [ebx + 0x1fc]
mov edx, dword [ebx + 0x1f8]
sub eax, edx
push 4
pop ecx
cmp eax, ecx
jb 0x4c280f
mov ecx, dword [0x7c0e2c]
xor edi, edi
test ecx, ecx
je 0x4c280a
mov eax, dword [ebx + 0x2a4]
lea esi, [edx + eax*4]
mov eax, dword [esi]
test byte [eax + 0x6a], 0x20
jne 0x4c2803
cmp dword [eax + 0x7c], edi
jg 0x4c2803
add eax, 0x38
push ecx
push eax
call fcn.004b7de4
test al, al
je 0x4c2803
push esi
mov ecx, ebx
call fcn.004b76a3
mov ecx, ebx
call fcn.004c8ede
mov al, byte [ebp + 0x68]
jmp 0x4c2814
mov al, byte [ebp + 0x68]
xor edi, edi
test byte [ebx + 0x14c], 1
jne 0x4c286f
test al, al
je 0x4c38db
mov al, byte [ebx + 0x325]
xor ecx, ecx
mov dword [ebx + 0x4f0], ecx
mov dword [ebx + 0x4f4], ecx
mov dword [ebx + 0x4f8], ecx
mov byte [ebx + 0x325], cl
test al, al
je 0x4c2856
push ecx
push 0x10000
mov ecx, ebx
call fcn.004b7090
test byte [ebx + 0x157], 0xc
jne 0x4c38db
mov ecx, ebx
call fcn.004b2273
jmp 0x4c38db
mov al, byte [ebx + 0x158]
test al, 8
jne 0x4c29c0
or al, 8
lea ecx, [ebp + 0x2c]
mov byte [ebx + 0x158], al
lea eax, [ebx + 0x204]
push eax
call fcn.004ad8d0
mov eax, dword [ebx + 0x1bc]
lea ecx, [ebx + 0x1ac]
xor edx, edx
mov dword [ebp + 0x54], eax
mov dword [ebp - 4], edx
mov edi, edx
test eax, eax
je 0x4c2961
mov eax, dword [ebx + 0x1b8]
add eax, edi
mov dword [ebp], ecx
lea ecx, [ebp]
mov dword [ebp + 4], eax
call fcn.00445f03
mov ecx, eax
call fcn.0049f93e
mov esi, eax
mov dword [ebp + 0x4c], esi
test byte [esi + 0xd1], 1
je 0x4c294d
mov eax, dword [esi]
xor ecx, ecx
mov esi, ecx
cmp dword [ebp + 0x3c], ecx
je 0x4c291f
lea edx, [eax + 0x78]
mov dword [ebp + 0x5c], edx
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x98], eax
push edx
lea ecx, [eax + esi]
lea eax, [ebp + 0x2c]
mov eax, dword [eax + 8]
dec eax
and ecx, eax
lea eax, [ebp + 0x2c]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ecx*4]
call fcn.00410b90
test al, al
jne 0x4c293e
mov edx, dword [ebp + 0x5c]
inc esi
cmp esi, dword [ebp + 0x3c]
jne 0x4c28ee
mov esi, dword [ebp + 0x4c]
xor eax, eax
push eax
mov ecx, esi
call fcn.004fab3a
push esi
mov ecx, ebx
call fcn.004c8953
mov eax, dword [ebp + 0x54]
dec eax
dec edi
mov dword [ebp + 0x54], eax
jmp 0x4c2950
cmp esi, 0xffffffff
je 0x4c291f
push esi
lea eax, [ebp + 0x2c]
push eax
call fcn.004a8f1d
mov eax, dword [ebp + 0x54]
inc edi
lea ecx, [ebx + 0x1ac]
cmp edi, eax
jb 0x4c28b2
xor edx, edx
cmp dword [ebp + 0x3c], 0
mov esi, edx
jbe 0x4c299a
lea edi, [ebp + 0x2c]
mov eax, dword [ebp + 0x38]
mov ecx, dword [edi + 8]
add eax, esi
dec ecx
and ecx, eax
mov eax, dword [edi + 4]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x14], 0x10
jb 0x4c2985
mov eax, dword [eax]
push edx
push 1
push edx
push eax
mov ecx, ebx
call fcn.004cefea
inc esi
push 0
pop edx
cmp esi, dword [ebp + 0x3c]
jb 0x4c296c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x2c]
call fcn.004785ca
mov eax, dword [ebp + 0x2c]
xor ecx, ecx
push 8
push eax
mov dword [ebp + 0x2c], ecx
call fcn.0068976d
mov al, byte [ebx + 0x158]
xor edi, edi
pop ecx
pop ecx
push 4
pop ecx
test cl, al
jne 0x4c29d6
or al, cl
mov ecx, ebx
mov byte [ebx + 0x158], al
call fcn.004cc543
cmp byte [ebp + 0x68], 0
je 0x4c29fb
mov ecx, dword [ebx + 0xd4]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test al, al
je 0x4c29fb
mov ecx, dword [ebx + 0xd4]
push 1
mov eax, dword [ecx]
call dword [eax + 0xbc]
push 4
pop eax
test byte [ebx + 0x160], al
je 0x4c308a
mov eax, dword [ebx + 0x7ac]
xor edx, edx
mov ecx, dword [ebx + 0x7a8]
cmp eax, edx
ja 0x4c2a24
cmp ecx, edx
jbe 0x4c3088
add ecx, 0x3fff
adc eax, edx
shrd ecx, eax, 0xe
shr eax, 0xe
cmp dword [ebx + 0x104], ecx
jne 0x4c3088
cmp edx, eax
jne 0x4c3088
push dword [ebx + 0xf4]
call fcn.004b4228
test al, al
je 0x4c3088
mov esi, dword [ebx + 0xf4]
test esi, esi
je 0x4c2a78
mov ecx, esi
call fcn.0051b5a1
push 0x180
push esi
call fcn.0068976d
pop ecx
pop ecx
sub esp, 0x18
xor eax, eax
mov ecx, ebx
mov dword [ebx + 0xf4], eax
push esp
call fcn.004bbfb3
mov ecx, ebx
call fcn.004cc2aa
xor ecx, ecx
xor eax, eax
push 7
pop edx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edx
mov word [ebp - 0x24], ax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 4], 1
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], edx
mov word [ebp - 0x3c], ax
mov byte [ebp - 4], 2
cmp dword [ebx + 0x780], ecx
je 0x4c2b0e
lea eax, [ebx + 0x770]
cmp dword [eax + 0x14], 0x10
jb 0x4c2ad4
mov eax, dword [eax]
push str.magnet:
push eax
call fcn.0048f8b4
test al, al
je 0x4c2b0e
mov eax, dword [ebx + 0xec]
xor ecx, ecx
cmp dword [eax + 0x38], ecx
je 0x4c2b0e
add eax, 0x28
lea ecx, [ebp - 0x24]
push eax
call fcn.004480a2
mov eax, dword [ebx + 0xec]
lea ecx, [ebp - 0x3c]
add eax, 0x40
push eax
call fcn.004480a2
mov esi, dword [ebx + 0xec]
lea ecx, [esi + 0x40]
call fcn.0048796a
lea ecx, [esi + 0x28]
call fcn.0048796a
lea ecx, [ebx + 0x57c]
cmp dword [ecx + 0x14], 8
mov eax, ecx
jb 0x4c2b34
mov eax, dword [ecx]
test eax, eax
je 0x4c2b47
mov eax, dword [0x7eaa50]
test eax, eax
jle 0x4c2b47
dec eax
mov dword [0x7eaa50], eax
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push eax
call fcn.004c10c0
mov edi, 0x1000
test al, al
je 0x4c2ed7
test dword [0x7ea094], 0x4000000
je 0x4c2ba4
mov edi, dword [0x7e67e0]
mov ecx, ebx
sub edi, dword [ebx + 0x378]
mov eax, dword [ebx]
mov esi, dword [0x7e67e4]
sbb esi, dword [ebx + 0x37c]
call dword [eax + 0x130]
push esi
push edi
push eax
push str.Finished_receiving_metadata_for__s_in__d_seconds
call fcn.0048e961
add esp, 0x10
mov edi, 0x1000
call fcn.0049fdc6
push eax
call fcn.0049fdcc
push eax
lea eax, [ebp - 0x5c]
mov ecx, ebx
push eax
call fcn.004bacac
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 3
push eax
mov ecx, ebx
call fcn.004bbfb3
cmp dword [ebp - 0x48], 8
lea ecx, [ebp - 0x5c]
push 4
pop eax
mov byte [ebp - 4], al
jb 0x4c2bdf
mov ecx, dword [ebp - 0x5c]
cmp dword [ebp - 0x78], 8
lea eax, [ebp - 0x8c]
jb 0x4c2bf1
mov eax, dword [ebp - 0x8c]
push ecx
push eax
call fcn.00470bc6
test eax, eax
jne 0x4c2c3b
cmp dword [ebp - 0x48], 8
lea eax, [ebp - 0x5c]
jb 0x4c2c08
mov eax, dword [ebp - 0x5c]
push eax
call fcn.00471890
test al, al
je 0x4c2c5a
cmp dword [ebp - 0x48], 8
lea ecx, [ebp - 0x5c]
jb 0x4c2c1e
mov ecx, dword [ebp - 0x5c]
cmp dword [ebp - 0x78], 8
lea eax, [ebp - 0x8c]
jb 0x4c2c30
mov eax, dword [ebp - 0x8c]
push ecx
push eax
call fcn.00470bc6
test eax, eax
je 0x4c2c5a
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x5c]
push eax
call fcn.00448193
mov ecx, ebx
call fcn.004cc2aa
cmp dword [ebp - 0x14], 0
jne 0x4c2ca7
lea eax, [ebp - 0xd4]
push eax
call fcn.0047e6e4
lea ecx, [ebp - 0x24]
cmp ecx, eax
je 0x4c2c84
xor ecx, ecx
mov byte [ebp + 0x5c], cl
lea ecx, [ebp - 0x24]
push dword [ebp + 0x5c]
push eax
call fcn.00448215
lea ecx, [ebp - 0xd4]
call fcn.0044823e
cmp dword [ebp - 0x10], 8
lea eax, [ebp - 0x24]
jb 0x4c2c9b
mov eax, dword [ebp - 0x24]
push dword [ebp - 0x14]
lea ecx, [ebp - 0x3c]
push eax
call fcn.00448307
mov esi, dword [ebx + 0xec]
sub esp, 0x18
mov ecx, esp
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x24]
push eax
call fcn.00448193
mov ecx, esi
call fcn.0051dc86
mov esi, dword [ebx + 0xec]
sub esp, 0x18
mov ecx, esp
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00448193
mov ecx, esi
call fcn.0051dbb6
test al, al
jne 0x4c2d73
mov byte [ebp + 0x5b], 1
call fcn.00489fdc
cmp dword [ebp - 0x10], 8
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 5
jb 0x4c2d0e
mov eax, dword [ebp - 0x24]
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.004e85fd
lea ecx, [ebp - 0x3c]
cmp ecx, eax
je 0x4c2d33
xor ecx, ecx
mov byte [ebp + 0x5c], cl
lea ecx, [ebp - 0x3c]
push dword [ebp + 0x5c]
push eax
call fcn.00448215
lea ecx, [ebp - 0xbc]
call fcn.0044823e
xor eax, eax
mov byte [ebp + 0x5b], al
call fcn.0048a01d
mov esi, dword [ebx + 0xec]
sub esp, 0x18
mov ecx, esp
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00448193
mov ecx, esi
call fcn.0051dbb6
push 4
pop eax
mov byte [ebp - 4], al
xor eax, eax
mov ecx, ebx
push eax
push edi
call fcn.004b7090
or byte [ebx + 0x160], 8
mov ecx, ebx
call fcn.004b8915
mov eax, dword [ebx + 0x250]
mov dword [ebx + 0x254], eax
mov edi, dword [ebx + 0x260]
mov esi, dword [edi]
cmp esi, edi
je 0x4c2db4
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi]
mov esi, eax
cmp eax, edi
jne 0x4c2da4
xor eax, eax
mov ecx, ebx
push eax
push 0x201
call fcn.004b7090
lea eax, [ebx + 0x1e0]
push eax
lea ecx, [ebp + 0x18]
call fcn.004ad877
xor eax, eax
mov byte [ebp - 4], 7
mov esi, eax
cmp dword [ebp + 0x28], eax
jbe 0x4c2e05
lea edi, [ebp + 0x18]
mov eax, dword [ebp + 0x24]
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x54], eax
add eax, esi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], eax
call fcn.00445f03
mov ecx, dword [eax]
call fcn.00500a3b
inc esi
cmp esi, dword [ebp + 0x28]
jb 0x4c2de2
lea ecx, [ebp + 0x18]
call fcn.00461e1c
mov eax, dword [ebx]
xor ecx, ecx
push 0xffffffffffffffff
push ecx
mov ecx, ebx
call dword [eax + 0x50]
cmp byte [ebx + 0x164], 3
jne 0x4c2e2b
mov ecx, ebx
call fcn.004cc59c
jmp 0x4c2e6b
cmp byte [0x7e5bb0], 0
je 0x4c2e6b
mov ecx, ebx
call fcn.004be3f6
push ebx
call fcn.004a2262
mov ax, word [ebx + 0x14c]
mov ecx, 0xfffe
and ax, cx
push 4
pop ecx
or ax, cx
mov ecx, ebx
movzx eax, ax
push eax
call fcn.004cc1d9
xor eax, eax
mov ecx, ebx
push eax
call fcn.004c7d4e
lea esi, [ebx + 0x504]
cmp dword [esi + 0x14], 0x10
jb 0x4c2e79
mov esi, dword [esi]
lea edi, [ebx + 0x57c]
cmp dword [edi + 0x14], 8
jb 0x4c2e87
mov edi, dword [edi]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x34]
push esi
push 3
xor ecx, ecx
push ecx
push str.Metadata_Complete
push edi
push eax
call fcn.004e7b79
lea ecx, [ebp + 0x18]
call fcn.00461e1c
mov eax, dword [ebp + 0x18]
xor ecx, ecx
push 8
push eax
mov dword [ebp + 0x18], ecx
call fcn.0068976d
pop ecx
pop ecx
lea ecx, [ebp - 0x8c]
call fcn.0044823e
lea ecx, [ebp - 0x5c]
call fcn.0044823e
mov edi, 0x1000
jmp 0x4c3004
xor eax, eax
mov dword [ebp - 0x60], 7
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x64], eax
mov word [ebp - 0x74], ax
mov ecx, ebx
mov byte [ebp - 4], 8
call fcn.004be0c0
test al, al
je 0x4c2f2c
lea eax, [ebp - 0xbc]
mov ecx, ebx
push eax
call fcn.004ba695
lea ecx, [ebp - 0x74]
cmp ecx, eax
je 0x4c2f1f
xor ecx, ecx
mov byte [ebp + 0x5c], cl
lea ecx, [ebp - 0x74]
push dword [ebp + 0x5c]
push eax
call fcn.00448215
lea ecx, [ebp - 0xbc]
call fcn.0044823e
jmp 0x4c2f3b
lea eax, [ebx + 0x758]
push eax
lea ecx, [ebp - 0x74]
call fcn.004480a2
test dword [0x7ea094], 0x20000
je 0x4c2f6c
cmp dword [ebp - 0x60], 8
lea esi, [ebp - 0x74]
jb 0x4c2f53
mov esi, dword [ebp - 0x74]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x130]
push esi
push eax
push str.ERROR:_Metadata_for__s_could_not_be_loaded_____s__
call fcn.0048e961
add esp, 0xc
test byte [ebx + 0x160], 0x10
je 0x4c2fab
mov eax, dword [ebx + 0x250]
xor ecx, ecx
cmp dword [eax + 4], ecx
je 0x4c2fab
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x130]
push eax
push str.BAN_peer:_Responsible_for__s_metadata_not_being_loaded_
call fcn.0048e961
mov eax, dword [ebx + 0x250]
pop ecx
pop ecx
xor ecx, ecx
push ecx
push ecx
push dword [eax + 4]
call fcn.004b230b
mov ecx, ebx
call fcn.004b8915
lea eax, [ebp + 0x5b]
push eax
lea ecx, [ebx + 0x250]
push 1
call fcn.004ab480
push 1
mov ecx, ebx
call fcn.004b576c
mov eax, dword [ebp - 0x60]
cmp eax, 8
jb 0x4c3004
mov ecx, dword [ebp - 0x74]
lea eax, [eax*2 + 2]
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x54], ecx
cmp eax, edi
jb 0x4c2ffb
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.0044810a
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x54]
push eax
push ecx
call fcn.0068976d
pop ecx
pop ecx
mov eax, dword [ebp - 0x28]
cmp eax, 8
jb 0x4c303c
mov ecx, dword [ebp - 0x3c]
lea eax, [eax*2 + 2]
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x10], ecx
cmp eax, edi
jb 0x4c3033
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.0044810a
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
push eax
push ecx
call fcn.0068976d
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
mov dword [ebp - 0x2c], eax
mov word [ebp - 0x3c], ax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], 7
cmp eax, 8
jb 0x4c3088
mov ecx, dword [ebp - 0x24]
lea eax, [eax*2 + 2]
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x5c], ecx
cmp eax, edi
jb 0x4c307f
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.0044810a
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x5c]
push eax
push ecx
call fcn.0068976d
pop ecx
pop ecx
xor edi, edi
cmp byte [ebp + 0x68], 0
je 0x4c3404
or dword [ebp - 0x44], 0xffffffff
or dword [ebp - 0x40], 0xffffffff
jmp 0x4c30b7
mov eax, dword [esi + 0x14]
add eax, 0x2d
cdq
cmp dword [0x7e67e4], edx
jg 0x4c30ce
jl 0x4c30b7
cmp dword [0x7e67e0], eax
ja 0x4c30ce
lea eax, [ebp - 0x44]
push eax
push dword [ebx + 0x1f4]
call fcn.0051538a
mov esi, eax
test esi, esi
jne 0x4c309e
jmp 0x4c3117
test byte [0x7ea094], 0x40
je 0x4c30e4
push esi
push str.Timing_out_hole_punch_request__A_
call fcn.0048e961
pop ecx
pop ecx
mov edx, dword [esi + 0x18]
push esi
mov ecx, dword [edx + 0xc3]
mov eax, ecx
and eax, 0xf0000000
not ecx
dec eax
and ecx, 0xfffffff
xor eax, ecx
mov dword [edx + 0xc3], eax
push dword [ebx + 0x1f4]
call fcn.005152eb
inc dword [0x7eaa2c]
cmp byte [ebx + 0x156], 0
je 0x4c314d
call fcn.0047d47c
movzx ecx, byte [ebx + 0x156]
xor edx, edx
shr ecx, 1
inc ecx
div ecx
push 0
shl edx, 0xf
add dword [ebx + 0x2a8], edx
pop eax
adc eax, dword [ebx + 0x2ac]
xor edi, edi
mov dword [ebx + 0x2ac], eax
test byte [ebx + 0x14c], 0x20
jne 0x4c32f2
cmp byte [0x7c0d04], 0
mov cl, byte [0x7c0d05]
je 0x4c31c6
mov eax, dword [ebx + 0xf8]
cmp eax, 0x80000
ja 0x4c317a
mov cl, 0xa
jmp 0x4c31c6
mov dword [ebp + 0x5c], eax
fild dword [ebp + 0x5c]
test eax, eax
jns 0x4c318a
fadd dword [0x6fefd8]
fstp dword [ebp + 0x5c]
fld dword [ebp + 0x5c]
fdiv qword [0x709980]
push ecx
push ecx
fstp dword [ebp + 0x5c]
fld dword [ebp + 0x5c]
fstp qword [esp]
call fcn.006a25c0
fstp dword [ebp + 0x5c]
fld dword [ebp + 0x5c]
pop ecx
pop ecx
call fcn.0068a2a0
mov ecx, 0xff
cmp eax, ecx
ja 0x4c31c6
mov ecx, eax
cmp eax, 0xa
jae 0x4c31c6
push 0xa
pop ecx
inc byte [ebx + 0x148]
cmp byte [ebx + 0x148], cl
jb 0x4c31e8
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
mov byte [ebx + 0x148], al
call fcn.004b50b1
xor edi, edi
inc byte [ebx + 0x14a]
cmp byte [ebx + 0x14a], 0xa
jb 0x4c321c
xor eax, eax
test byte [ebx + 0x157], 0x20
mov byte [ebx + 0x14a], al
jne 0x4c321a
mov ecx, ebx
call fcn.004b416c
test al, al
je 0x4c321a
mov ecx, ebx
call fcn.004cb9bf
xor edi, edi
mov eax, dword [ebx + 0x31c]
test eax, eax
jne 0x4c32eb
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x148]
test al, al
je 0x4c32f2
mov ecx, dword [0x7ea210]
mov eax, dword [ecx]
call dword [eax + 0x5c]
test al, al
je 0x4c32f2
xor eax, eax
mov ecx, ebx
mov esi, eax
mov eax, dword [ebx]
call dword [eax + 0xe8]
test al, al
je 0x4c3262
inc esi
cmp dword [ebx + 0x1f0], 5
jb 0x4c326e
or esi, 2
mov edi, dword [0x7ea210]
mov ecx, ebx
mov eax, dword [edi]
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x5c], eax
call fcn.004bac93
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.0045b928
cmp dword [eax + 0x14], 0x10
mov dword [ebp - 4], 9
jb 0x4c329f
mov eax, dword [eax]
push esi
xor ecx, ecx
push ecx
push eax
push 0x4a310c
push 0x49fb58
lea eax, [ebx + 8]
mov ecx, edi
push eax
call dword [ebp + 0x5c]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xbc]
call fcn.0040fad0
call fcn.0047d47c
xor edx, edx
or byte [ebx + 0x324], 1
mov ecx, 0x12c
div ecx
add edx, 0x4b0
xor edi, edi
mov dword [ebx + 0x31c], edx
jmp 0x4c32f2
dec eax
mov dword [ebx + 0x31c], eax
mov ecx, ebx
call fcn.004b26a2
mov eax, dword [ebx + 0x1fc]
sub eax, dword [ebx + 0x1f8]
push 4
pop ecx
cmp eax, ecx
jb 0x4c33be
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + pe_nt_image_headers32]
test al, al
jne 0x4c33be
mov ecx, dword [ebx + 0x2a4]
mov eax, dword [ebx + 0x1f8]
lea esi, [eax + ecx*4]
mov eax, dword [esi]
mov cl, byte [eax + 0x6a]
test cl, 0x20
jne 0x4c3345
cmp dword [eax + 0x7c], edi
jg 0x4c33b7
test cl, 1
jne 0x4c33b7
cmp byte [0x7f29c7], 0
jne 0x4c33b7
cmp byte [0x7f2afa], 0
jne 0x4c33b7
cmp byte [0x7eaa75], 0
jne 0x4c33b7
call fcn.004a2654
test eax, eax
jle 0x4c33b7
push esi
mov ecx, ebx
call fcn.004bc2ec
mov edx, dword [esi]
mov byte [ebp + 0x5c], al
mov cl, byte [edx + 0x68]
cmp al, cl
je 0x4c3381
test al, al
jne 0x4c339d
cmp cl, 3
je 0x4c339d
lea ecx, [edx + 0x28]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
je 0x4c339d
push dword [edx + 0x1c]
push ecx
call fcn.004b7de4
test al, al
je 0x4c33b7
mov eax, dword [0x7ea338]
test eax, eax
jle 0x4c33b7
push dword [ebp + 0x5c]
dec eax
mov ecx, ebx
push esi
mov dword [0x7ea338], eax
call fcn.004b6227
mov ecx, ebx
call fcn.004c8ede
movzx esi, word [ebx + 0x14c]
mov ecx, ebx
shr esi, 5
not esi
and esi, 1
add dword [ebx + 0x410], esi
push 0
pop eax
adc dword [ebx + 0x414], eax
mov eax, dword [ebx]
call dword [eax + 0xe8]
test al, al
jne 0x4c33f5
mov ecx, ebx
call fcn.004cabfc
test al, al
je 0x4c3404
add dword [ebx + 0x418], esi
push 0
pop eax
adc dword [ebx + 0x41c], eax
mov al, byte [ebx + 0x157]
test al, 2
je 0x4c3499
and al, 0xfd
lea ecx, [ebp + 0x2c]
mov byte [ebx + 0x157], al
lea eax, [ebx + 0x1e0]
push eax
call fcn.004ad877
mov edi, dword [ebp + 0x3c]
xor eax, eax
mov dword [ebp - 4], 0xa
mov esi, eax
test edi, edi
je 0x4c3473
mov ebx, dword [ebp + 0x38]
lea ecx, [ebp + 0x2c]
lea eax, [ebx + esi]
mov dword [ebp], ecx
lea ecx, [ebp]
mov dword [ebp + 4], eax
call fcn.00445f03
mov ecx, dword [eax]
test byte [ecx + 0x18f], 2
je 0x4c3468
call fcn.004febba
mov edi, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x38]
inc esi
lea ecx, [ebp + 0x2c]
cmp esi, edi
jb 0x4c3441
mov ebx, dword [ebp + 0x48]
lea ecx, [ebp + 0x2c]
call fcn.00461e1c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x2c]
call fcn.00461e1c
mov eax, dword [ebp + 0x2c]
xor ecx, ecx
push 8
push eax
mov dword [ebp + 0x2c], ecx
call fcn.0068976d
pop ecx
pop ecx
cmp byte [ebp + 0x68], 0
je 0x4c3873
xor eax, eax
lea ecx, [ebp + 0x18]
mov dword [ebp + 0x44], eax
mov edi, eax
mov dword [ebp + 0x54], eax
lea eax, [ebx + 0x1e0]
push eax
call fcn.004ad877
xor eax, eax
mov dword [ebp - 4], 0xb
cmp dword [ebp + 0x28], eax
jbe 0x4c3521
lea ecx, [ebp + 0x18]
mov ebx, eax
mov eax, dword [ebp + 0x24]
add eax, ebx
mov dword [ebp + 8], ecx
lea ecx, [ebp + 8]
mov dword [ebp + 0xc], eax
call fcn.00445f03
mov esi, dword [eax]
test byte [esi + 0x18f], 2
je 0x4c34fa
push dword [ebp + 0x70]
mov ecx, esi
push dword [ebp + 0x6c]
call fcn.004ff4a1
mov eax, dword [ebp + 0x54]
lea ecx, [ebp + 0x18]
add eax, dword [esi + 0xa8]
add edi, dword [esi + 0xa0]
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x44]
add eax, dword [esi + 0x60]
inc ebx
mov dword [ebp + 0x44], eax
cmp ebx, dword [ebp + 0x28]
jb 0x4c34cf
mov ebx, dword [ebp + 0x48]
lea ecx, [ebp + 0x18]
call fcn.00461e1c
xor eax, eax
mov dword [ebx + 0x4f0], edi
push eax
call fcn.004a76db
mov dword [ebp - 0xa4], eax
lea ecx, [ebx + 0x698]
lea eax, [ebp - 0xa4]
mov dword [ebp - 0xa0], edx
push eax
mov dword [ebp - 0x9c], edi
call fcn.004b1b73
imul eax, dword [ebx + 0x4fc], 0x7f
mov ecx, dword [ebp + 0x54]
mov dword [ebx + 0x4f8], ecx
add eax, ecx
mov cl, byte [ebx + 0x325]
add eax, eax
shr eax, 8
mov dword [ebx + 0x4fc], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x4f4], eax
cmp eax, dword [0x7c0dd0]
jae 0x4c35a7
cmp edi, dword [0x7c0dcc]
jae 0x4c35a7
mov al, cl
test cl, cl
je 0x4c35b0
dec al
mov byte [ebx + 0x325], al
jmp 0x4c35b0
mov byte [ebx + 0x325], 0xf
mov al, 0xf
xor dl, dl
cmp dl, cl
sbb ecx, ecx
neg ecx
cmp dl, al
sbb eax, eax
neg eax
cmp ecx, eax
je 0x4c35d1
xor eax, eax
mov ecx, ebx
push eax
push 0x10000
call fcn.004b7090
inc dword [ebx + 0x328]
xor edx, edx
mov eax, dword [ebx + 0x328]
push 0x3c
pop ecx
div ecx
test edx, edx
jne 0x4c36af
mov ecx, ebx
call fcn.004cac75
cmp byte [0x7c0dba], 0
je 0x4c3633
mov eax, dword [ebx + 0x150]
mov ecx, dword [0x7c0d14]
cmp eax, ecx
jb 0x4c360e
mov eax, ecx
cmp dword [ebx + 0x1bc], eax
jae 0x4c3623
mov eax, dword [0x7e680c]
cmp eax, dword [0x7c0d1c]
jb 0x4c3633
cmp byte [ebx + 0x157], 0
jl 0x4c3633
mov ecx, ebx
call fcn.004b722b
mov ecx, ebx
call fcn.004b80d7
xor eax, eax
push eax
call fcn.004a76db
mov esi, dword [ebx + 0x188]
mov ecx, dword [ebx + 0x18c]
add esi, 0xe4c
push 0
pop edi
adc ecx, edi
cmp ecx, edx
jg 0x4c36af
jl 0x4c3663
cmp esi, eax
jae 0x4c36af
mov ecx, dword [0x7ea210]
push 0x4a4503
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
xor eax, eax
push eax
lea eax, [ebx + 8]
push eax
xor eax, eax
push eax
call edx
call fcn.0069d629
push 0x3c
cdq
pop ecx
idiv ecx
push 0
mov eax, edx
cdq
mov edi, eax
mov esi, edx
pop eax
sub edi, 0x1e
push eax
sbb esi, eax
call fcn.004a76db
add eax, edi
mov dword [ebx + 0x188], eax
adc edx, esi
mov dword [ebx + 0x18c], edx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x18]
call fcn.00461e1c
mov eax, dword [ebp + 0x18]
xor ecx, ecx
push 8
push eax
mov dword [ebp + 0x18], ecx
call fcn.0068976d
test byte [ebx + 0x161], 8
mov eax, dword [0x7e67e4]
mov edi, dword [0x7e67e0]
pop ecx
pop ecx
mov dword [ebp + 0x48], eax
jne 0x4c383e
push 4
pop eax
test byte [ebx + 0x160], al
je 0x4c383e
lea esi, [ebx + 0x230]
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x4c3707
mov eax, dword [esi]
push str.http:
push eax
call fcn.0048f8b4
test al, al
jne 0x4c3733
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x4c3720
mov eax, dword [esi]
push 0x6fec6c
push eax
call fcn.0048f8b4
test al, al
je 0x4c383e
mov eax, dword [ebx + 0x248]
mov ecx, dword [0x7e65c0]
cmp eax, ecx
jl 0x4c3745
mov eax, ecx
cdq
add eax, dword [ebx + 0x378]
adc edx, dword [ebx + 0x37c]
cmp edx, dword [ebp + 0x48]
ja 0x4c383e
jb 0x4c3765
cmp eax, edi
jae 0x4c383e
or byte [ebx + 0x161], 8
push 0xc4
call fcn.0068973d
pop ecx
mov dword [ebp + 0x48], eax
mov dword [ebp - 4], 0xc
test eax, eax
je 0x4c378e
mov ecx, eax
call fcn.00476b67
jmp 0x4c3790
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov ecx, eax
mov dword [ebp + 0x70], ecx
test ecx, ecx
je 0x4c37a3
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
xor eax, eax
mov dword [ebp - 4], 0xd
push eax
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.0046f6b4
mov ecx, dword [ebp + 0x70]
push eax
lea ecx, [ecx + 8]
call fcn.00448080
lea ecx, [ebp - 0xd4]
call fcn.0044823e
xor eax, eax
mov ecx, esi
push eax
call fcn.00413680
mov eax, dword [ebp + 0x70]
add eax, 8
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.0045b928
push eax
mov ecx, esi
mov byte [ebp - 4], 0xe
call fcn.00413760
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xd
call fcn.0040fad0
cmp dword [esi + 0x14], 0x10
jb 0x4c3811
mov esi, dword [esi]
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp + 0x70]
push eax
push 0x4c18b7
push ebx
push esi
call fcn.004779e8
mov eax, dword [ebp + 0x70]
mov dword [ebp - 4], 0xf
test eax, eax
je 0x4c383a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov ecx, ebx
call fcn.004b2273
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xe8]
test al, al
jne 0x4c3873
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x15c]
and al, 0x21
cmp al, 1
jne 0x4c3873
add dword [ebx + 0x358], 1
push 0
pop eax
adc dword [ebx + 0x35c], eax
lea ecx, [ebp + 0x6b]
push ecx
lea eax, [ebx + 0x25c]
push eax
lea ecx, [ebp - 0x104]
call fcn.0049d911
mov edi, dword [ebp - 0x100]
mov dword [ebp - 4], 0x10
mov esi, dword [edi]
jmp 0x4c38c1
lea eax, [esi + 8]
push eax
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebx + 0x25c]
call fcn.0049ecd5
mov ecx, dword [ebx + 0x260]
cmp dword [eax], ecx
je 0x4c38bf
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov esi, dword [esi]
cmp esi, edi
jne 0x4c389a
lea ecx, [ebp - 0xf8]
call fcn.0047b63f
lea ecx, [ebp - 0x100]
call fcn.004a4a4c
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
add ebp, 0x60
leave
ret 0xc