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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x69c
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, edx
push edi
mov edi, dword [ebp + 0xc]
mov ebx, ecx
mov dword [ebp - 4], eax
mov edx, dword [esi]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
cmp edi, 1
jb 0x48121a
mov al, byte [edx + eax]
lea ecx, [edx + 1]
movzx eax, al
mov dword [ebp - 8], eax
mov eax, ecx
sub eax, edx
mov dword [esi], ecx
add eax, dword [ebp - 8]
cmp eax, edi
ja 0x48121a
add ecx, dword [ebp - 8]
mov dword [esi], ecx
cmp byte [ebx + 0x2e0], 3
jne 0x4808e3
cmp byte [ebx + 0x2e1], 3
jb 0x4808e3
mov eax, ecx
sub eax, edx
add eax, 2
cmp eax, edi
ja 0x48121a
mov eax, dword [ebp - 4]
lea edi, [edx + 1]
add edi, dword [ebp - 8]
mov ebx, eax
mov cl, byte [ecx + eax + 1]
mov al, byte [edi + ebx]
add edi, 2
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edi
mov dword [esi], edi
movzx edi, al
shl edi, 8
movzx eax, cl
mov ecx, dword [ebp + 0xc]
or edi, eax
cmp edi, ecx
ja 0x48121a
mov eax, edi
sub eax, edx
mov edx, dword [ebp - 0x10]
add eax, edx
cmp eax, ecx
ja 0x48121a
add edx, dword [ebp - 4]
mov ecx, ebx
push edi
call fcn.00483020
add esp, 4
test eax, eax
je 0x4808b3
mov eax, dword [ebx + 0x278]
test eax, eax
je 0x4808b3
cmp dword [eax], 0
je 0x4808b3
mov eax, dword [ebx + 0x27c]
test eax, eax
je 0x4808b3
cmp dword [eax], 0
je 0x4808b3
mov eax, 0xfffffe57
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
add dword [esi], edi
xor eax, eax
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
mov word [ebx + 0x4a6], ax
mov eax, dword [ebx + 4]
cmp byte [eax + 0x158], 8
jne 0x4808e3
movzx eax, byte [eax + 0x157]
xor ecx, ecx
bts ecx, eax
mov word [ebx + 0x4a6], cx
mov ecx, dword [esi]
mov eax, ecx
sub eax, edx
add eax, 2
cmp eax, edi
ja 0x48121a
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 4]
movzx ecx, byte [ecx + eax]
mov eax, dword [esi]
shl cx, 8
movzx eax, byte [eax + ebx + 1]
mov ebx, dword [ebp - 0x14]
or cx, ax
movzx eax, cx
mov ecx, dword [esi]
mov dword [ebp - 0x10], eax
add ecx, 2
movzx eax, ax
sub eax, edx
mov dword [esi], ecx
add eax, ecx
cmp eax, edi
ja 0x48121a
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x1414]
cmp ecx, dword [eax + 0x3c]
je 0x48093f
xor edx, edx
call fcn.00466ac0
call fcn.004633f0
mov dword [ebx + 0x1414], eax
test eax, eax
jne 0x48095a
mov eax, 0xfffffed1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp word [ebp - 0x10], 0
je 0x480bb3
mov edx, dword [esi]
mov eax, edx
sub eax, dword [ebp - 0xc]
add eax, 2
cmp eax, edi
ja 0x48121a
mov eax, dword [ebp - 4]
movzx ecx, byte [edx + eax]
movzx eax, byte [edx + eax + 1]
shl cx, 8
or cx, ax
lea eax, [edx + 2]
movzx ecx, cx
mov dword [ebp - 0x14], eax
mov dword [esi], eax
sub eax, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
movzx ecx, cx
add eax, ecx
cmp eax, edi
ja 0x48121a
mov esi, dword [ebx + 0x84]
lea eax, [ebp - 0x698]
push 0x674
xor edi, edi
push edi
push eax
call fcn.0041d6f0
mov eax, dword [ebp - 0x14]
add esp, 0xc
add eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x388], eax
movzx eax, cx
push 0x38
mov dword [ebp - 0x380], eax
lea eax, [ebp - 0x68]
push edi
push eax
mov word [ebp - 0x624], 0xc
mov byte [ebp - 0x4d9], 0
mov dword [ebp - 0x37c], esi
mov byte [ebp - 0x2ff], 0x7f
mov byte [ebp - 0x2a0], 0xc
mov byte [ebp - 0x294], 0x13
mov byte [ebp - 0x288], 0xc
mov byte [ebp - 0x27c], 0xc
mov byte [ebp - 0x270], 0xc
mov byte [ebp - 0x264], 0xc
call fcn.0041d6f0
mov ecx, dword [ebp - 8]
lea edx, [edi + 1]
add esp, 0xc
movzx eax, cx
lea ecx, [ebp - 0x698]
mov dword [ebp - 0x50], 0xfffffffe
mov dword [ebp - 0x68], esi
push eax
call fcn.004b5070
mov esi, eax
add esp, 4
test esi, esi
jne 0x480b1e
mov eax, dword [0x555884]
push 0x4ec
test eax, eax
je 0x480a71
call eax
jmp 0x480a76
call fcn.0042d0bc
mov edi, eax
add esp, 4
test edi, edi
je 0x480b66
push 0x4e0
lea eax, [edi + 8]
push 0
push eax
call fcn.0041d6f0
add esp, 0xc
mov dword [edi + 0x4e8], 0
lea eax, [edi + 0xc]
mov dword [edi + 4], 0
mov dword [edi], eax
lea eax, [ebp - 0x4d9]
push 0x14a
push eax
push dword [edi]
call fcn.0042fbe0
mov eax, dword [edi]
add esp, 0xc
mov byte [eax + 0x149], 0
mov ecx, dword [edi]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480ad0
sub ecx, edx
lea eax, [ecx + 1]
mov ecx, 0x14a
mov dword [edi + 8], eax
lea eax, [edi + 0x394]
cmp dword [ebp - 0x2b4], ecx
cmovl ecx, dword [ebp - 0x2b4]
push ecx
mov dword [edi + 0x4e0], ecx
push dword [ebp - 0x2b8]
push eax
call fcn.0041d170
mov ecx, dword [ebx + 0x1414]
add esp, 0xc
mov edx, edi
call fcn.00467950
test eax, eax
je 0x480b54
lea ecx, [ebp - 0x698]
call fcn.004b0710
test esi, esi
jne 0x480b7f
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 8]
movzx eax, cx
add dword [esi], eax
mov eax, 0xfffe
sub eax, ecx
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
test cx, cx
je 0x480bb3
mov edi, dword [ebp + 0xc]
jmp 0x480965
lea ecx, [ebp - 0x698]
mov esi, 0xfffffed1
call fcn.004b0710
jmp 0x480b83
lea ecx, [ebp - 0x698]
mov esi, 0xfffffed1
call fcn.004b0710
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x480baa
mov ecx, edi
call fcn.0048f2a0
mov eax, dword [0x55587c]
push edi
test eax, eax
je 0x480ba2
call eax
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.0042a4fb
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x481175
mov eax, dword [ebx + 0x278]
test eax, eax
je 0x480bd3
cmp dword [eax], 0
jne 0x481175
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
push ebx
call ecx
add esp, 0xc
cmp eax, 1
jne 0x4811ca
mov edx, dword [ebp - 0x18]
test edx, edx
je 0x4811be
mov edx, dword [edx + 0x90]
test edx, edx
je 0x4811be
movzx eax, byte [ebx + 0x421]
xor ecx, ecx
not eax
and eax, 1
push eax
push 0
lea eax, [ebp + 0xc]
push eax
push ebx
push 0
push 2
push dword [edx + 8]
mov edx, dword [edx]
call fcn.0046a3e0
add esp, 0x1c
cmp eax, 1
jne 0x4811be
mov edx, dword [ebp - 0x1c]
test edx, edx
je 0x4811be
movzx eax, byte [ebx + 0x421]
mov ecx, dword [ebx]
not eax
and eax, 1
push eax
push 0
push 0
push ebx
push 1
push 2
push dword [edx + 0xc]
mov edx, dword [edx + 0x2c]
call fcn.0046a3e0
add esp, 0x1c
cmp eax, 1
jne 0x4811be
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x480fd2
cmp byte [edi + 0x98], 0
je 0x480fd2
lea eax, [edi + 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
dec dword [edi + 0x248]
lea eax, [edi + 0x230]
mov esi, dword [edi + 0x248]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test esi, esi
jne 0x480fd2
lea ecx, [edi + 0x418]
call fcn.0048f2a0
lea ecx, [edi + 0x904]
call fcn.0048f2a0
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x480cee
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480cdf
call ecx
jmp 0x480ce4
call fcn.0042a4fb
add esp, 4
mov dword [edi + 0x7c], 0
lea esi, [edi + 0x90]
test esi, esi
je 0x480d45
mov edx, dword [esi]
test edx, edx
je 0x480d45
cmp dword [edx + 0xc], 1
jne 0x480d1c
mov eax, dword [edx]
test eax, eax
je 0x480d1c
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x480d1c
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x480d11
mov eax, dword [0x55587c]
mov dword [edx], 0
mov dword [edx + 8], 0
push edx
test eax, eax
je 0x480d37
call eax
jmp 0x480d3c
call fcn.0042a4fb
add esp, 4
mov dword [esi], 0
mov eax, dword [edi + 0x6c]
test eax, eax
je 0x480d63
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480d5b
call ecx
jmp 0x480d60
call fcn.0042a4fb
add esp, 4
mov eax, dword [edi + 0x250]
mov dword [edi + 0x6c], 0
test eax, eax
je 0x480d96
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480d89
call ecx
lea esi, [edi + 0x24c]
jmp 0x480dba
call fcn.0042a4fb
lea esi, [edi + 0x24c]
jmp 0x480dba
mov eax, dword [edi + 0x24c]
lea esi, [edi + 0x24c]
test eax, eax
je 0x480dbd
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480db5
call ecx
jmp 0x480dba
call fcn.0042a4fb
add esp, 4
mov eax, dword [edi + 0x254]
mov dword [edi + 0x250], 0
mov dword [esi], 0
test eax, eax
je 0x480dee
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480de6
call ecx
jmp 0x480deb
call fcn.0042a4fb
add esp, 4
mov eax, dword [edi + 0x268]
mov dword [edi + 0x254], 0
test eax, eax
je 0x480e23
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480e11
call ecx
jmp 0x480e16
call fcn.0042a4fb
add esp, 4
mov dword [edi + 0x268], 0
mov eax, dword [edi + 0x260]
test eax, eax
je 0x480e4e
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480e3c
call ecx
jmp 0x480e41
call fcn.0042a4fb
add esp, 4
mov dword [edi + 0x260], 0
mov eax, dword [edi + 0x264]
test eax, eax
je 0x480e79
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480e67
call ecx
jmp 0x480e6c
call fcn.0042a4fb
add esp, 4
mov dword [edi + 0x264], 0
mov eax, dword [edi + 0x26c]
test eax, eax
je 0x480e9a
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480e92
call ecx
jmp 0x480e97
call fcn.0042a4fb
add esp, 4
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x480ea8
xor edx, edx
call fcn.00466ac0
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0x480eb6
xor edx, edx
call fcn.00466ac0
mov esi, dword [edi + 0x18]
test esi, esi
je 0x480ef7
test byte [esi + 0x20], 1
je 0x480ee1
mov eax, dword [esi + 0x18]
test eax, eax
je 0x480ee1
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480ed9
call ecx
jmp 0x480ede
call fcn.0042a4fb
add esp, 4
mov eax, dword [0x55587c]
push esi
test eax, eax
je 0x480eef
call eax
jmp 0x480ef4
call fcn.0042a4fb
add esp, 4
mov eax, dword [edi + 0x258]
test eax, eax
je 0x480f22
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480f10
call ecx
jmp 0x480f15
call fcn.0042a4fb
add esp, 4
mov dword [edi + 0x258], 0
mov eax, dword [edi + 0xdf0]
test eax, eax
je 0x480f3f
push eax
call fcn.004678a0
add esp, 4
mov dword [edi + 0xdf0], 0
mov ecx, dword [edi + 0xdf8]
test ecx, ecx
je 0x480f58
call fcn.00463bf0
mov dword [edi + 0xdf8], 0
mov ecx, dword [edi + 0xdfc]
test ecx, ecx
je 0x480f71
call fcn.0046e570
mov dword [edi + 0xdfc], 0
mov eax, dword [edi + 0x25c]
test eax, eax
je 0x480f9c
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x480f8a
call ecx
jmp 0x480f8f
call fcn.0042a4fb
add esp, 4
mov dword [edi + 0x25c], 0
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x480faf
call fcn.004b0190
mov dword [edi + 0x78], 0
lea eax, [edi + 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov eax, dword [0x55587c]
push edi
test eax, eax
je 0x480fca
call eax
jmp 0x480fcf
call fcn.0042a4fb
add esp, 4
mov edi, dword [ebp - 0x1c]
test edi, edi
je 0x481175
lea eax, [edi + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
dec dword [edi + 0x10]
lea eax, [edi + 0x14]
mov esi, dword [edi + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test esi, esi
jne 0x481175
lea esi, [edi + 0x40]
test esi, esi
je 0x48103b
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x481037
call fcn.004cf050
mov eax, dword [esi + 8]
test eax, eax
je 0x481030
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x481028
call ecx
jmp 0x48102d
call fcn.0042a4fb
add esp, 4
mov dword [esi + 8], 0
mov byte [esi + 0xc], 0
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x481060
mov ecx, dword [0x55587c]
push eax
test ecx, ecx
je 0x481051
call ecx
jmp 0x481056
call fcn.0042a4fb
add esp, 4
mov dword [edi + 0x2c], 0
mov eax, dword [edi + 4]
cmp eax, 0x12
jg 0x4810e7
je 0x4810c4
sub eax, 0x10
je 0x48109e
sub eax, 1
jne 0x48115c
mov ecx, dword [edi + 0x34]
test ecx, ecx
je 0x48115c
test byte [edi + 0x76], 4
je 0x48115c
call fcn.0046d700
mov dword [edi + 0x34], 0
jmp 0x48115c
mov ecx, dword [edi + 0x30]
test ecx, ecx
je 0x48115c
test byte [edi + 0x76], 8
je 0x48115c
call fcn.0046e0f0
mov dword [edi + 0x30], 0
jmp 0x48115c
mov ecx, dword [edi + 0x38]
test ecx, ecx
je 0x48115c
test byte [edi + 0x76], 2
je 0x48115c
call fcn.0046c860
mov dword [edi + 0x38], 0
jmp 0x48115c
cmp eax, 0x1c
je 0x481143
cmp eax, 0x40c
jne 0x48115c
mov ecx, dword [edi + 0x54]
test ecx, ecx
je 0x481106
call fcn.00472860
mov dword [edi + 0x54], 0
mov ecx, dword [edi + 0x5c]
test ecx, ecx
je 0x481119
call fcn.00472860
mov dword [edi + 0x5c], 0
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x48112c
call fcn.00472860
mov dword [edi + 0x64], 0
mov dword [edi + 0x58], 0
mov dword [edi + 0x60], 0
mov dword [edi + 0x68], 0
jmp 0x48115c
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x48115c
test byte [edi + 0x76], 1
je 0x48115c
call fcn.0046d360
mov dword [edi + 0x3c], 0
lea eax, [edi + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov eax, dword [0x55587c]
push edi
test eax, eax
je 0x4811b7
call eax
add esp, 4
mov ecx, ebx
call fcn.00467da0
test eax, eax
jne 0x48121f
mov eax, dword [ebx + 0x278]
test eax, eax
je 0x4811da
cmp dword [eax], 0
je 0x4811da
mov eax, dword [ebx + 0x27c]
test eax, eax
je 0x4811f4
cmp dword [eax], 0
je 0x4811f4
mov ax, word [ebx + 0x420]
mov ecx, 0xfffb
and ax, cx
or ax, 2
jmp 0x4811ed
call fcn.0042a4fb
jmp 0x481172
mov eax, 0xfffffe4c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
jns 0x481175
mov eax, 0x53
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ax, word [ebx + 0x420]
mov ecx, 0xfffd
and ax, cx
or ax, 4
mov word [ebx + 0x420], ax
cmp byte [ebx + 0x40c], 0
je 0x481211
cmp byte [ebx + 0x1ed], 0
je 0x481211
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 0x408]
add dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffeb8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret