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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [ecx + 0xc]
push edi
mov dword [ebp - 4], ecx
cmp esi, dword [ecx + 0x10]
jbe 0x4c1f89
call fcn.004eaba2
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
mov edi, esi
mov esi, dword [eax + 0x10]
cmp dword [eax + 0xc], esi
jbe 0x4c1f9d
call fcn.004eaba2
mov eax, dword [ebp - 4]
mov eax, dword [eax]
test ebx, ebx
je 0x4c1faa
cmp ebx, eax
je 0x4c1faf
call fcn.004eaba2
cmp edi, esi
je 0x4c20da
test ebx, ebx
jne 0x4c20c4
call fcn.004eaba2
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4c1fd0
call fcn.004eaba2
mov esi, dword [edi]
mov ecx, dword [esi]
test ecx, ecx
je 0x4c2003
call fcn.004c55f0
test al, al
je 0x4c1fef
mov ecx, dword [esi]
call fcn.004c3660
mov ecx, dword [esi]
call fcn.004c35b0
mov ecx, dword [esi]
test ecx, ecx
je 0x4c1ffd
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi], 0
mov dword [esi + 0x34], 0
test ebx, ebx
jne 0x4c20cb
call fcn.004eaba2
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4c2023
call fcn.004eaba2
mov esi, dword [edi]
test esi, esi
je 0x4c2089
mov eax, dword [esi + 0x1c]
sub eax, 0x10
mov dword [esi + 0x34], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c204f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi]
test ecx, ecx
je 0x4c2080
call fcn.004c55f0
test al, al
je 0x4c206c
mov ecx, dword [esi]
call fcn.004c3660
mov ecx, dword [esi]
call fcn.004c35b0
mov ecx, dword [esi]
test ecx, ecx
je 0x4c207a
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi], 0
push esi
call fcn.004ea481
add esp, 4
test ebx, ebx
jne 0x4c20d2
call fcn.004eaba2
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4c209e
call fcn.004eaba2
mov dword [edi], 0
test ebx, ebx
jne 0x4c20d6
call fcn.004eaba2
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4c20b9
call fcn.004eaba2
mov eax, dword [ebp - 4]
add edi, 4
jmp 0x4c1f90
mov eax, dword [ebx]
jmp 0x4c1fc6
mov eax, dword [ebx]
jmp 0x4c2019
mov eax, dword [ebx]
jmp 0x4c2094
mov eax, dword [ebx]
jmp 0x4c20af
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x10]
cmp dword [eax + 0xc], ebx
jbe 0x4c20ea
call fcn.004eaba2
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0xc]
mov edi, dword [eax]
cmp esi, dword [eax + 0x10]
jbe 0x4c20fc
call fcn.004eaba2
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
push ebx
push edi
push esi
push eax
lea edx, [ebp - 0xc]
push edx
call fcn.00497ba0
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x24]
add eax, 0x18
mov dword [ebp - 8], eax
cmp esi, dword [eax + 0x10]
jbe 0x4c2124
call fcn.004eaba2
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov ebx, esi
jmp 0x4c2130
mov esi, dword [eax + 0x10]
cmp dword [eax + 0xc], esi
jbe 0x4c213d
call fcn.004eaba2
mov eax, dword [ebp - 8]
mov eax, dword [eax]
test edi, edi
je 0x4c214a
cmp edi, eax
je 0x4c214f
call fcn.004eaba2
cmp ebx, esi
je 0x4c227a
test edi, edi
jne 0x4c2264
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c2170
call fcn.004eaba2
mov esi, dword [ebx]
mov ecx, dword [esi]
test ecx, ecx
je 0x4c21a3
call fcn.004c55f0
test al, al
je 0x4c218f
mov ecx, dword [esi]
call fcn.004c3660
mov ecx, dword [esi]
call fcn.004c35b0
mov ecx, dword [esi]
test ecx, ecx
je 0x4c219d
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi], 0
mov dword [esi + 0x34], 0
test edi, edi
jne 0x4c226b
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c21c3
call fcn.004eaba2
mov esi, dword [ebx]
test esi, esi
je 0x4c2229
mov eax, dword [esi + 0x1c]
sub eax, 0x10
mov dword [esi + 0x34], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c21ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi]
test ecx, ecx
je 0x4c2220
call fcn.004c55f0
test al, al
je 0x4c220c
mov ecx, dword [esi]
call fcn.004c3660
mov ecx, dword [esi]
call fcn.004c35b0
mov ecx, dword [esi]
test ecx, ecx
je 0x4c221a
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi], 0
push esi
call fcn.004ea481
add esp, 4
test edi, edi
jne 0x4c2272
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c223e
call fcn.004eaba2
mov dword [ebx], 0
test edi, edi
jne 0x4c2276
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c2259
call fcn.004eaba2
mov eax, dword [ebp - 8]
add ebx, 4
jmp 0x4c2130
mov eax, dword [edi]
jmp 0x4c2166
mov eax, dword [edi]
jmp 0x4c21b9
mov eax, dword [edi]
jmp 0x4c2234
mov eax, dword [edi]
jmp 0x4c224f
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0x10]
cmp dword [eax + 0xc], edi
jbe 0x4c228a
call fcn.004eaba2
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x24]
mov ebx, dword [eax + 0x18]
add eax, 0x18
cmp esi, dword [eax + 0x10]
jbe 0x4c22a0
call fcn.004eaba2
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x18]
push edi
push ebx
add ecx, 0x18
push esi
push eax
lea edx, [ebp - 0xc]
push edx
call fcn.00497ba0
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x3c]
add eax, 0x30
mov dword [ebp - 8], eax
cmp esi, dword [eax + 0x10]
jbe 0x4c22cc
call fcn.004eaba2
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov ebx, esi
mov esi, dword [eax + 0x10]
cmp dword [eax + 0xc], esi
jbe 0x4c22e0
call fcn.004eaba2
mov eax, dword [ebp - 8]
mov eax, dword [eax]
test edi, edi
je 0x4c22ed
cmp edi, eax
je 0x4c22f2
call fcn.004eaba2
cmp ebx, esi
je 0x4c23f5
test edi, edi
jne 0x4c23df
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c2313
call fcn.004eaba2
mov esi, dword [ebx]
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x4c234b
call fcn.004c55f0
test al, al
je 0x4c2335
mov ecx, dword [esi + 0x1c]
call fcn.004c3660
mov ecx, dword [esi + 0x1c]
call fcn.004c35b0
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x4c2344
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi + 0x1c], 0
test edi, edi
jne 0x4c23e6
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c2364
call fcn.004eaba2
mov esi, dword [ebx]
test esi, esi
je 0x4c23a4
mov ecx, dword [esi]
test ecx, ecx
je 0x4c239b
call fcn.004c55f0
test al, al
je 0x4c2387
mov ecx, dword [esi]
call fcn.004c3660
mov ecx, dword [esi]
call fcn.004c35b0
mov ecx, dword [esi]
test ecx, ecx
je 0x4c2395
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi], 0
push esi
call fcn.004ea481
add esp, 4
test edi, edi
jne 0x4c23ed
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c23b9
call fcn.004eaba2
mov dword [ebx], 0
test edi, edi
jne 0x4c23f1
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c23d4
call fcn.004eaba2
mov eax, dword [ebp - 8]
add ebx, 4
jmp 0x4c22d3
mov eax, dword [edi]
jmp 0x4c2309
mov eax, dword [edi]
jmp 0x4c235a
mov eax, dword [edi]
jmp 0x4c23af
mov eax, dword [edi]
jmp 0x4c23ca
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x40]
add eax, 0x30
cmp dword [eax + 0xc], edi
jbe 0x4c2408
call fcn.004eaba2
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x3c]
mov ebx, dword [eax + 0x30]
add eax, 0x30
cmp esi, dword [eax + 0x10]
jbe 0x4c241e
call fcn.004eaba2
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x30]
push edi
push ebx
add ecx, 0x30
push esi
push eax
lea edx, [ebp - 0xc]
push edx
call fcn.00497ba0
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x6c]
add eax, 0x60
mov dword [ebp - 8], eax
cmp esi, dword [eax + 0x10]
jbe 0x4c244a
call fcn.004eaba2
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov ebx, esi
mov esi, dword [eax + 0x10]
cmp dword [eax + 0xc], esi
jbe 0x4c245e
call fcn.004eaba2
mov eax, dword [ebp - 8]
mov eax, dword [eax]
test edi, edi
je 0x4c246b
cmp edi, eax
je 0x4c2470
call fcn.004eaba2
cmp ebx, esi
je 0x4c256e
test edi, edi
jne 0x4c2558
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c2491
call fcn.004eaba2
mov esi, dword [ebx]
mov ecx, dword [esi]
test ecx, ecx
je 0x4c24c4
call fcn.004c55f0
test al, al
je 0x4c24b0
mov ecx, dword [esi]
call fcn.004c3660
mov ecx, dword [esi]
call fcn.004c35b0
mov ecx, dword [esi]
test ecx, ecx
je 0x4c24be
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi], 0
test edi, edi
jne 0x4c255f
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c24dd
call fcn.004eaba2
mov esi, dword [ebx]
test esi, esi
je 0x4c251d
mov ecx, dword [esi]
test ecx, ecx
je 0x4c2514
call fcn.004c55f0
test al, al
je 0x4c2500
mov ecx, dword [esi]
call fcn.004c3660
mov ecx, dword [esi]
call fcn.004c35b0
mov ecx, dword [esi]
test ecx, ecx
je 0x4c250e
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi], 0
push esi
call fcn.004ea481
add esp, 4
test edi, edi
jne 0x4c2566
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c2532
call fcn.004eaba2
mov dword [ebx], 0
test edi, edi
jne 0x4c256a
call fcn.004eaba2
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4c254d
call fcn.004eaba2
mov eax, dword [ebp - 8]
add ebx, 4
jmp 0x4c2451
mov eax, dword [edi]
jmp 0x4c2487
mov eax, dword [edi]
jmp 0x4c24d3
mov eax, dword [edi]
jmp 0x4c2528
mov eax, dword [edi]
jmp 0x4c2543
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0x10]
cmp dword [eax + 0xc], edi
jbe 0x4c257e
call fcn.004eaba2
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x6c]
mov ecx, dword [ebp - 8]
mov ebx, dword [ecx]
add eax, 0x60
cmp esi, dword [eax + 0x10]
jbe 0x4c2596
call fcn.004eaba2
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x60]
push edi
push ebx
add ecx, 0x60
push esi
push eax
lea edx, [ebp - 0xc]
push edx
call fcn.00497ba0
mov edi, dword [ebp - 4]
mov esi, dword [edi + 0x84]
add edi, 0x78
cmp esi, dword [edi + 0x10]
jbe 0x4c25c2
call fcn.004eaba2
mov ebx, dword [edi]
mov dword [ebp - 8], esi
mov esi, dword [edi + 0x10]
cmp dword [edi + 0xc], esi
jbe 0x4c25d4
call fcn.004eaba2
mov eax, dword [edi]
test ebx, ebx
je 0x4c25de
cmp ebx, eax
je 0x4c25e3
call fcn.004eaba2
cmp dword [ebp - 8], esi
je 0x4c26bf
test ebx, ebx
jne 0x4c26a9
call fcn.004eaba2
xor eax, eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 0x10]
jb 0x4c2608
call fcn.004eaba2
mov edx, dword [ebp - 8]
mov eax, dword [edx]
mov dword [eax + 0x18], 0
test ebx, ebx
jne 0x4c26b0
call fcn.004eaba2
xor eax, eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 0x10]
jb 0x4c2630
call fcn.004eaba2
mov edx, dword [ebp - 8]
mov esi, dword [edx]
test esi, esi
je 0x4c2667
mov eax, dword [esi]
sub eax, 0x10
mov dword [esi + 0x18], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c265e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
call fcn.004ea481
add esp, 4
test ebx, ebx
jne 0x4c26b7
call fcn.004eaba2
xor eax, eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 0x10]
jb 0x4c267f
call fcn.004eaba2
mov edx, dword [ebp - 8]
mov dword [edx], 0
test ebx, ebx
jne 0x4c26bb
call fcn.004eaba2
xor eax, eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 0x10]
jb 0x4c26a0
call fcn.004eaba2
add dword [ebp - 8], 4
jmp 0x4c25c7
mov eax, dword [ebx]
jmp 0x4c25fb
mov eax, dword [ebx]
jmp 0x4c2623
mov eax, dword [ebx]
jmp 0x4c2672
mov eax, dword [ebx]
jmp 0x4c2693
mov eax, dword [edi + 0x10]
mov dword [ebp - 8], eax
cmp dword [edi + 0xc], eax
jbe 0x4c26cf
call fcn.004eaba2
mov esi, dword [edi + 0xc]
mov ebx, dword [edi]
cmp esi, dword [edi + 0x10]
jbe 0x4c26de
call fcn.004eaba2
mov edx, dword [ebp - 8]
mov eax, dword [edi]
push edx
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
push eax
mov ecx, edi
call fcn.00497ba0
mov edi, dword [ebp - 4]
mov esi, dword [edi + 0x9c]
add edi, 0x90
cmp esi, dword [edi + 0x10]
jbe 0x4c270b
call fcn.004eaba2
mov ebx, dword [edi]
mov dword [ebp - 8], esi
mov esi, dword [edi + 0x10]
cmp dword [edi + 0xc], esi
jbe 0x4c271d
call fcn.004eaba2
mov eax, dword [edi]
test ebx, ebx
je 0x4c2727
cmp ebx, eax
je 0x4c272c
call fcn.004eaba2
cmp dword [ebp - 8], esi
je 0x4c2808
test ebx, ebx
jne 0x4c27f2
call fcn.004eaba2
xor eax, eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 0x10]
jb 0x4c2751
call fcn.004eaba2
mov edx, dword [ebp - 8]
mov eax, dword [edx]
mov dword [eax + 0x18], 0
test ebx, ebx
jne 0x4c27f9
call fcn.004eaba2
xor eax, eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 0x10]
jb 0x4c2779
call fcn.004eaba2
mov edx, dword [ebp - 8]
mov esi, dword [edx]
test esi, esi
je 0x4c27b0
mov eax, dword [esi]
sub eax, 0x10
mov dword [esi + 0x18], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c27a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
call fcn.004ea481
add esp, 4
test ebx, ebx
jne 0x4c2800
call fcn.004eaba2
xor eax, eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 0x10]
jb 0x4c27c8
call fcn.004eaba2
mov edx, dword [ebp - 8]
mov dword [edx], 0
test ebx, ebx
jne 0x4c2804
call fcn.004eaba2
xor eax, eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 0x10]
jb 0x4c27e9
call fcn.004eaba2
add dword [ebp - 8], 4
jmp 0x4c2710
mov eax, dword [ebx]
jmp 0x4c2744
mov eax, dword [ebx]
jmp 0x4c276c
mov eax, dword [ebx]
jmp 0x4c27bb
mov eax, dword [ebx]
jmp 0x4c27dc
mov eax, dword [edi + 0x10]
mov dword [ebp - 8], eax
cmp dword [edi + 0xc], eax
jbe 0x4c2818
call fcn.004eaba2
mov esi, dword [edi + 0xc]
mov ebx, dword [edi]
cmp esi, dword [edi + 0x10]
jbe 0x4c2827
call fcn.004eaba2
mov edx, dword [ebp - 8]
mov eax, dword [edi]
push edx
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
push eax
mov ecx, edi
call fcn.00497ba0
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x54]
add eax, 0x48
mov dword [ebp - 4], eax
cmp esi, dword [eax + 0x10]
jbe 0x4c2851
call fcn.004eaba2
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
mov edi, esi
mov esi, dword [eax + 0x10]
cmp dword [eax + 0xc], esi
jbe 0x4c2865
call fcn.004eaba2
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
test ebx, ebx
je 0x4c2872
cmp ebx, eax
je 0x4c2877
call fcn.004eaba2
cmp edi, esi
je 0x4c2975
test ebx, ebx
jne 0x4c295f
call fcn.004eaba2
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4c2898
call fcn.004eaba2
mov esi, dword [edi]
mov ecx, dword [esi]
test ecx, ecx
je 0x4c28cb
call fcn.004c55f0
test al, al
je 0x4c28b7
mov ecx, dword [esi]
call fcn.004c3660
mov ecx, dword [esi]
call fcn.004c35b0
mov ecx, dword [esi]
test ecx, ecx
je 0x4c28c5
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi], 0
test ebx, ebx
jne 0x4c2966
call fcn.004eaba2
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4c28e4
call fcn.004eaba2
mov esi, dword [edi]
test esi, esi
je 0x4c2924
mov ecx, dword [esi]
test ecx, ecx
je 0x4c291b
call fcn.004c55f0
test al, al
je 0x4c2907
mov ecx, dword [esi]
call fcn.004c3660
mov ecx, dword [esi]
call fcn.004c35b0
mov ecx, dword [esi]
test ecx, ecx
je 0x4c2915
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi], 0
push esi
call fcn.004ea481
add esp, 4
test ebx, ebx
jne 0x4c296d
call fcn.004eaba2
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4c2939
call fcn.004eaba2
mov dword [edi], 0
test ebx, ebx
jne 0x4c2971
call fcn.004eaba2
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4c2954
call fcn.004eaba2
mov eax, dword [ebp - 4]
add edi, 4
jmp 0x4c2858
mov eax, dword [ebx]
jmp 0x4c288e
mov eax, dword [ebx]
jmp 0x4c28da
mov eax, dword [ebx]
jmp 0x4c292f
mov eax, dword [ebx]
jmp 0x4c294a
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x10]
cmp dword [eax + 0xc], ebx
jbe 0x4c2985
call fcn.004eaba2
mov ecx, dword [ebp - 4]
mov esi, dword [ecx + 0xc]
mov edi, dword [ecx]
cmp esi, dword [ecx + 0x10]
jbe 0x4c299a
call fcn.004eaba2
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
push ebx
push edi
push esi
push eax
lea edx, [ebp - 0xc]
push edx
call fcn.00497ba0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret