Function at 0x480aa0
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 - 8], eax
mov edx, dword [esi]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
cmp edi, 1
jb 0x48150a
mov al, byte [edx + eax]
lea ecx, [edx + 1]
movzx eax, al
mov dword [ebp - 4], eax
sub eax, edx
add eax, ecx
mov dword [esi], ecx
cmp eax, edi
ja 0x48150a
add ecx, dword [ebp - 4]
mov dword [esi], ecx
cmp byte [ebx + 0x2e0], 3
jne 0x480bd3
cmp byte [ebx + 0x2e1], 3
jb 0x480bd3
mov eax, ecx
sub eax, edx
add eax, 2
cmp eax, edi
ja 0x48150a
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov ebx, dword [ebp - 8]
mov cl, byte [ecx + eax + 1]
lea eax, [edx + 1]
add edi, eax
mov al, byte [edi + ebx]
add edi, 2
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 4], 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 0x48150a
mov eax, edi
sub eax, edx
mov edx, dword [ebp - 4]
add eax, edx
cmp eax, ecx
ja 0x48150a
add edx, dword [ebp - 8]
mov ecx, ebx
push edi
call fcn.00483310
add esp, 4
test eax, eax
je 0x480ba3
mov eax, dword [ebx + 0x278]
test eax, eax
je 0x480ba3
cmp dword [eax], 0
je 0x480ba3
mov eax, dword [ebx + 0x27c]
test eax, eax
je 0x480ba3
cmp dword [eax], 0
je 0x480ba3
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 - 0x10]
mov word [ebx + 0x4a6], ax
mov eax, dword [ebx + 4]
cmp byte [eax + 0x158], 8
jne 0x480bd3
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 0x48150a
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 8]
movzx ecx, byte [ecx + eax]
mov eax, dword [esi]
shl cx, 8
movzx eax, byte [eax + ebx + 1]
mov ebx, dword [ebp - 0xc]
or cx, ax
movzx eax, cx
mov ecx, dword [esi]
mov dword [ebp - 4], eax
add ecx, 2
movzx eax, ax
sub eax, edx
mov dword [esi], ecx
add eax, ecx
cmp eax, edi
ja 0x48150a
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x1414]
cmp ecx, dword [eax + 0x3c]
je 0x480c2f
xor edx, edx
call fcn.00466d10
call fcn.00463640
mov dword [ebx + 0x1414], eax
test eax, eax
jne 0x480c4a
mov eax, 0xfffffed1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp word [ebp - 4], 0
je 0x480ea3
mov edx, dword [esi]
mov eax, edx
sub eax, dword [ebp - 0x10]
add eax, 2
cmp eax, edi
ja 0x48150a
mov eax, dword [ebp - 8]
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 - 0x1c], eax
mov dword [esi], eax
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], ecx
movzx ecx, cx
add eax, ecx
cmp eax, edi
ja 0x48150a
mov esi, dword [ebx + 0x84]
lea eax, [ebp - 0x698]
push 0x674
xor edi, edi
push edi
push eax
call fcn.0041d750
mov eax, dword [ebp - 0x1c]
add esp, 0xc
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
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.0041d750
mov ecx, dword [ebp - 0xc]
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.004b52e0
mov esi, eax
add esp, 4
test esi, esi
jne 0x480e0e
mov eax, dword [0x420ecbc]
push 0x4ec
test eax, eax
je 0x480d61
call eax
jmp 0x480d66
call fcn.0042d11c
mov edi, eax
add esp, 4
test edi, edi
je 0x480e56
push 0x4e0
lea eax, [edi + 8]
push 0
push eax
call fcn.0041d750
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.0042fc40
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 0x480dc0
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.0041d1d0
mov ecx, dword [ebx + 0x1414]
add esp, 0xc
mov edx, edi
call fcn.00467ba0
test eax, eax
je 0x480e44
lea ecx, [ebp - 0x698]
call fcn.004b0980
test esi, esi
jne 0x480e6f
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
movzx eax, cx
add dword [esi], eax
mov eax, 0xfffe
sub eax, ecx
mov ecx, dword [ebp - 4]
add ecx, eax
mov dword [ebp - 4], ecx
test cx, cx
je 0x480ea3
mov edi, dword [ebp + 0xc]
jmp 0x480c55
lea ecx, [ebp - 0x698]
mov esi, 0xfffffed1
call fcn.004b0980
jmp 0x480e73
lea ecx, [ebp - 0x698]
mov esi, 0xfffffed1
call fcn.004b0980
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x480e9a
mov ecx, edi
call fcn.0048f580
mov eax, dword [0x420ede8]
push edi
test eax, eax
je 0x480e92
call eax
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.0042a55b
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 0x481465
mov eax, dword [ebx + 0x278]
test eax, eax
je 0x480ec3
cmp dword [eax], 0
jne 0x481465
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push ebx
call ecx
add esp, 0xc
cmp eax, 1
jne 0x4814ba
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x4814ae
mov edx, dword [edx + 0x90]
test edx, edx
je 0x4814ae
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.0046a630
add esp, 0x1c
cmp eax, 1
jne 0x4814ae
mov edx, dword [ebp - 0x18]
test edx, edx
je 0x4814ae
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.0046a630
add esp, 0x1c
cmp eax, 1
jne 0x4814ae
mov edi, dword [ebp - 0x14]
test edi, edi
je 0x4812c2
cmp byte [edi + 0x98], 0
je 0x4812c2
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 0x4812c2
lea ecx, [edi + 0x418]
call fcn.0048f580
lea ecx, [edi + 0x904]
call fcn.0048f580
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x480fde
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x480fcf
call ecx
jmp 0x480fd4
call fcn.0042a55b
add esp, 4
mov dword [edi + 0x7c], 0
lea esi, [edi + 0x90]
test esi, esi
je 0x481035
mov edx, dword [esi]
test edx, edx
je 0x481035
cmp dword [edx + 0xc], 1
jne 0x48100c
mov eax, dword [edx]
test eax, eax
je 0x48100c
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x48100c
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x481001
mov eax, dword [0x420ede8]
mov dword [edx], 0
mov dword [edx + 8], 0
push edx
test eax, eax
je 0x481027
call eax
jmp 0x48102c
call fcn.0042a55b
add esp, 4
mov dword [esi], 0
mov eax, dword [edi + 0x6c]
test eax, eax
je 0x481053
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x48104b
call ecx
jmp 0x481050
call fcn.0042a55b
add esp, 4
mov eax, dword [edi + 0x250]
mov dword [edi + 0x6c], 0
test eax, eax
je 0x481086
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x481079
call ecx
lea esi, [edi + 0x24c]
jmp 0x4810aa
call fcn.0042a55b
lea esi, [edi + 0x24c]
jmp 0x4810aa
mov eax, dword [edi + 0x24c]
lea esi, [edi + 0x24c]
test eax, eax
je 0x4810ad
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x4810a5
call ecx
jmp 0x4810aa
call fcn.0042a55b
add esp, 4
mov eax, dword [edi + 0x254]
mov dword [edi + 0x250], 0
mov dword [esi], 0
test eax, eax
je 0x4810de
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x4810d6
call ecx
jmp 0x4810db
call fcn.0042a55b
add esp, 4
mov eax, dword [edi + 0x268]
mov dword [edi + 0x254], 0
test eax, eax
je 0x481113
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x481101
call ecx
jmp 0x481106
call fcn.0042a55b
add esp, 4
mov dword [edi + 0x268], 0
mov eax, dword [edi + 0x260]
test eax, eax
je 0x48113e
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x48112c
call ecx
jmp 0x481131
call fcn.0042a55b
add esp, 4
mov dword [edi + 0x260], 0
mov eax, dword [edi + 0x264]
test eax, eax
je 0x481169
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x481157
call ecx
jmp 0x48115c
call fcn.0042a55b
add esp, 4
mov dword [edi + 0x264], 0
mov eax, dword [edi + 0x26c]
test eax, eax
je 0x48118a
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x481182
call ecx
jmp 0x481187
call fcn.0042a55b
add esp, 4
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x481198
xor edx, edx
call fcn.00466d10
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0x4811a6
xor edx, edx
call fcn.00466d10
mov esi, dword [edi + 0x18]
test esi, esi
je 0x4811e7
test byte [esi + 0x20], 1
je 0x4811d1
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4811d1
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x4811c9
call ecx
jmp 0x4811ce
call fcn.0042a55b
add esp, 4
mov eax, dword [0x420ede8]
push esi
test eax, eax
je 0x4811df
call eax
jmp 0x4811e4
call fcn.0042a55b
add esp, 4
mov eax, dword [edi + 0x258]
test eax, eax
je 0x481212
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x481200
call ecx
jmp 0x481205
call fcn.0042a55b
add esp, 4
mov dword [edi + 0x258], 0
mov eax, dword [edi + 0xdf0]
test eax, eax
je 0x48122f
push eax
call fcn.00467af0
add esp, 4
mov dword [edi + 0xdf0], 0
mov ecx, dword [edi + 0xdf8]
test ecx, ecx
je 0x481248
call fcn.00463e40
mov dword [edi + 0xdf8], 0
mov ecx, dword [edi + 0xdfc]
test ecx, ecx
je 0x481261
call fcn.0046e7c0
mov dword [edi + 0xdfc], 0
mov eax, dword [edi + 0x25c]
test eax, eax
je 0x48128c
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x48127a
call ecx
jmp 0x48127f
call fcn.0042a55b
add esp, 4
mov dword [edi + 0x25c], 0
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x48129f
call fcn.004b0400
mov dword [edi + 0x78], 0
lea eax, [edi + 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov eax, dword [0x420ede8]
push edi
test eax, eax
je 0x4812ba
call eax
jmp 0x4812bf
call fcn.0042a55b
add esp, 4
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x481465
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 0x481465
lea esi, [edi + 0x40]
test esi, esi
je 0x48132b
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x481327
call fcn.004cf2c0
mov eax, dword [esi + 8]
test eax, eax
je 0x481320
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x481318
call ecx
jmp 0x48131d
call fcn.0042a55b
add esp, 4
mov dword [esi + 8], 0
mov byte [esi + 0xc], 0
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x481350
mov ecx, dword [0x420ede8]
push eax
test ecx, ecx
je 0x481341
call ecx
jmp 0x481346
call fcn.0042a55b
add esp, 4
mov dword [edi + 0x2c], 0
mov eax, dword [edi + 4]
cmp eax, 0x12
jg 0x4813d7
je 0x4813b4
sub eax, 0x10
je 0x48138e
sub eax, 1
jne 0x48144c
mov ecx, dword [edi + 0x34]
test ecx, ecx
je 0x48144c
test byte [edi + 0x76], 4
je 0x48144c
call fcn.0046d950
mov dword [edi + 0x34], 0
jmp 0x48144c
mov ecx, dword [edi + 0x30]
test ecx, ecx
je 0x48144c
test byte [edi + 0x76], 8
je 0x48144c
call fcn.0046e340
mov dword [edi + 0x30], 0
jmp 0x48144c
mov ecx, dword [edi + 0x38]
test ecx, ecx
je 0x48144c
test byte [edi + 0x76], 2
je 0x48144c
call fcn.0046cab0
mov dword [edi + 0x38], 0
jmp 0x48144c
cmp eax, 0x1c
je 0x481433
cmp eax, 0x40c
jne 0x48144c
mov ecx, dword [edi + 0x54]
test ecx, ecx
je 0x4813f6
call fcn.00472b30
mov dword [edi + 0x54], 0
mov ecx, dword [edi + 0x5c]
test ecx, ecx
je 0x481409
call fcn.00472b30
mov dword [edi + 0x5c], 0
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x48141c
call fcn.00472b30
mov dword [edi + 0x64], 0
mov dword [edi + 0x58], 0
mov dword [edi + 0x60], 0
mov dword [edi + 0x68], 0
jmp 0x48144c
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x48144c
test byte [edi + 0x76], 1
je 0x48144c
call fcn.0046d5b0
mov dword [edi + 0x3c], 0
lea eax, [edi + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov eax, dword [0x420ede8]
push edi
test eax, eax
je 0x4814a7
call eax
add esp, 4
mov ecx, ebx
call fcn.00467ff0
test eax, eax
jne 0x48150f
mov eax, dword [ebx + 0x278]
test eax, eax
je 0x4814ca
cmp dword [eax], 0
je 0x4814ca
mov eax, dword [ebx + 0x27c]
test eax, eax
je 0x4814e4
cmp dword [eax], 0
je 0x4814e4
mov ax, word [ebx + 0x420]
mov ecx, 0xfffb
and ax, cx
or ax, 2
jmp 0x4814dd
call fcn.0042a55b
jmp 0x481462
mov eax, 0xfffffe4c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
jns 0x481465
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 0x481501
cmp byte [ebx + 0x1ed], 0
je 0x481501
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