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

Disassembly:
mov eax, 0x30109594
call fcn.300088d4
push ecx
sub esp, 0x88
push ebx
push esi
push edi
xor edi, edi
cmp dword [0x301559b8], edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 4], edi
jne 0x300602a5
push 0x18
call fcn.3000882f
mov esi, eax
pop ecx
mov dword [ebp - 0x24], esi
cmp esi, edi
mov byte [ebp - 4], 1
je 0x300604ea
push esi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
and byte [ebp - 4], 0
mov dword [0x301559b8], esi
cmp dword [0x301559bc], edi
jne 0x300602d7
push 0x18
call fcn.3000882f
mov esi, eax
pop ecx
mov dword [ebp - 0x24], esi
cmp esi, edi
mov byte [ebp - 4], 2
je 0x300604f1
push esi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
and byte [ebp - 4], 0
mov dword [0x301559bc], esi
cmp dword [0x301559c0], edi
jne 0x30060309
push 0x18
call fcn.3000882f
mov esi, eax
pop ecx
mov dword [ebp - 0x24], esi
cmp esi, edi
mov byte [ebp - 4], 3
je 0x300604f8
push esi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
and byte [ebp - 4], 0
mov dword [0x301559c0], esi
mov ebx, dword [ebp + 0xc]
cmp ebx, edi
jne 0x3006033f
cmp dword [0x301559b4], edi
jne 0x300605d6
inc dword [0x30155e4c]
mov ecx, 0x30155988
mov dword [0x301559b4], 1
call fcn.3002e214
mov ebx, eax
cmp ebx, edi
mov dword [ebp + 0xc], ebx
je 0x30060344
cmp dword [ebx + 0xc], edi
jne 0x30060363
push 0x30157df0
push 0xb
call fcn.3005b54d
pop ecx
mov dword [ebp - 0x18], eax
pop ecx
lea eax, [ebp - 0x18]
push 0x30123408
push eax
call fcn.30020a74
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], edi
mov eax, dword [ebx + 0x34]
xor esi, esi
sub eax, esi
je 0x30060c53
dec eax
je 0x30060c35
dec eax
je 0x30060a40
dec eax
je 0x300609ff
dec eax
je 0x300607bb
dec eax
je 0x300605ee
dec eax
jne 0x3006036b
mov ecx, ebx
call fcn.30061679
cmp eax, esi
jne 0x30060407
test byte [ebx + 0xd1], 4
je 0x30060407
push 0x2e4
call fcn.3000882f
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
mov byte [ebp - 4], 0x10
je 0x300604ff
push dword [ebp + 0x10]
push dword [ebp + 8]
call fcn.300a6426
mov esi, eax
mov ecx, dword [ebp + 8]
and byte [ebp - 4], 0
push esi
push 0x18
mov eax, dword [ecx]
call dword [eax + 0x18]
mov dword [ebp - 0x2c], esi
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x11
push eax
call fcn.3006cfe3
and byte [ebp - 4], 0
pop ecx
lea ecx, [ebp - 0x2c]
call fcn.30108c3b
mov esi, dword [0x301559b8]
push esi
mov dword [ebp - 0x18], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x301559c4], 0
mov byte [ebp - 4], 0x12
jne 0x3006045d
and dword [0x301559c8], 0
push 0x28
call fcn.3000882f
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov byte [ebp - 4], 0x13
je 0x30060506
push dword [ebp + 8]
call fcn.30060d19
mov ecx, eax
mov byte [ebp - 4], 0x12
mov dword [0x301559c4], ecx
call fcn.3000fad2
and byte [ebp - 4], 0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, ebx
call fcn.30061679
test eax, eax
jne 0x30060530
and dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x30060530
mov eax, dword [0x301559c0]
push eax
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x98]
push eax
call fcn.30021c28
test eax, eax
pop ecx
je 0x300604c7
mov eax, dword [ebp - 0x94]
cmp eax, dword [0x301559b0]
jne 0x3006050d
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x8c]
jne 0x300604c7
mov eax, dword [eax + 0x2c]
mov dword [ebx + 0x2c], eax
push dword [ebp - 0x18]
and byte [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x301559bc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x3006047a
xor esi, esi
jmp 0x3006029b
xor esi, esi
jmp 0x300602cd
xor esi, esi
jmp 0x300602ff
xor esi, esi
jmp 0x300603db
xor ecx, ecx
jmp 0x3006044e
cmp eax, dword [0x3015599c]
jne 0x3006051e
mov dword [ebp - 0x14], 1
jmp 0x300604c7
lea eax, [ebp - 0x98]
push eax
call fcn.30021da1
pop ecx
jmp 0x30060497
mov eax, dword [0x301559cc]
test eax, eax
je 0x3006055e
and dword [0x301559cc], 0
push 0x30157df0
push eax
call fcn.3005b54d
pop ecx
mov dword [ebp - 0x38], eax
pop ecx
lea eax, [ebp - 0x38]
push 0x30123408
push eax
call fcn.30020a74
mov ecx, ebx
call fcn.30061679
test eax, eax
jne 0x30060588
mov ecx, dword [ebp + 8]
push 0x18
mov esi, dword [ecx]
call dword [esi + 0x14]
test eax, eax
je 0x30060588
mov ecx, eax
call fcn.300a6a9d
mov ecx, dword [ebp + 8]
push 0
push 0x18
call dword [esi + 0x18]
push ebx
mov ecx, 0x30155988
mov esi, ebx
call fcn.300305c7
mov ebx, eax
push esi
mov ecx, 0x30155988
mov dword [ebp + 0xc], ebx
call fcn.3003d0f0
test ebx, ebx
jne 0x300605b4
call fcn.30037d73
and dword [0x301559b4], ebx
test byte [esi + 0xd0], 1
je 0x300605e5
test esi, esi
je 0x300605c9
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
cmp dword [0x301559b4], 0
jne 0x3006036b
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
mov ecx, esi
call fcn.30061f8e
jmp 0x300605c9
mov ecx, dword [ebx + 0x18]
call fcn.30080020
mov edi, eax
mov ecx, edi
mov dword [ebp - 0x1c], edi
call fcn.30061798
mov ecx, edi
call fcn.30061798
cmp dword [edi + 0x50], esi
jne 0x30060631
mov eax, dword [ebx + 0x18]
add eax, 0xf4
push eax
push 0xd
call fcn.3005b54d
pop ecx
mov dword [ebp - 0x34], eax
pop ecx
lea eax, [ebp - 0x34]
push 0x30123408
push eax
call fcn.30020a74
mov ax, word [ebx + 0xd0]
test al, 1
je 0x30060664
test al, 2
je 0x3006071e
test al, 4
jne 0x30060659
mov edi, ebx
mov dword [ebx + 0x34], 1
mov dword [ebp - 0x1c], edi
jmp 0x3006036b
push dword [ebx + 0x24]
lea ecx, [edi + 0x20]
call fcn.30062280
push dword [ebp + 8]
call fcn.3001b5ae
lea esi, [eax + 0x5c]
pop ecx
mov dword [ebp - 0x14], eax
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 4]
mov ecx, esi
call fcn.30075653
test eax, eax
movzx eax, word [edi + 0xd0]
je 0x30060735
or ah, 1
mov ecx, edi
mov word [edi + 0xd0], ax
call fcn.300618d4
mov esi, dword [ebp - 0x14]
mov ecx, esi
call fcn.30035403
mov ecx, dword [edi + 0x18]
cmp eax, ecx
jne 0x300606cc
mov eax, dword [esi + 0xac]
mov ecx, dword [ecx + 0xdc]
lea eax, [eax + ecx - 1]
lea ecx, [edi + 0x78]
push eax
push eax
call fcn.300620df
mov eax, dword [edi + 0x40]
xor ecx, ecx
sub eax, ecx
je 0x300606eb
dec eax
je 0x30060745
dec eax
je 0x3006073d
dec eax
dec eax
jne 0x300606eb
cmp dword [edi + 0x70], ecx
jne 0x300606eb
mov ecx, edi
call fcn.30061881
push 1
pop esi
cmp dword [edi + 0x38], esi
jne 0x30060702
mov ecx, dword [edi + 0x18]
call fcn.3008012b
test eax, eax
jne 0x30060702
and dword [edi + 0x38], eax
lea eax, [edi + 0x68]
mov ecx, edi
push eax
call fcn.300613d4
test byte [ebx + 0xd0], 2
je 0x3006074a
mov dword [ebx + 0x34], esi
jmp 0x3006036b
push dword [ebx + 0x24]
lea ecx, [edi + 0x20]
call fcn.30062280
mov ecx, edi
call fcn.30061881
jmp 0x30060664
and ah, 0xfe
jmp 0x30060693
cmp dword [edi + 0x80], ecx
jmp 0x300606e2
cmp dword [edi + 0x60], ecx
jmp 0x300606e2
test byte [edi + 0xd1], 8
je 0x300607a1
mov ecx, edi
call fcn.3006174a
mov ecx, dword [eax]
mov dword [edi + 0x38], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 0x3c], ecx
test byte [eax + 0x10], 1
movzx ecx, word [edi + 0xd0]
je 0x300607ad
or ch, 2
mov word [edi + 0xd0], cx
test byte [eax + 0x10], 2
movzx ecx, cx
je 0x300607b2
or ch, 0x40
mov word [edi + 0xd0], cx
cmp dword [eax + 0xc], 0
movzx eax, cx
je 0x300607b7
or al, 0x40
mov word [edi + 0xd0], ax
mov dword [ebx + 0x34], 3
jmp 0x3006036b
and ch, 0xfd
jmp 0x30060775
and ch, 0xbf
jmp 0x30060788
and al, 0xbf
jmp 0x3006079a
mov ax, word [ebx + 0xd0]
test al, 1
je 0x30060986
test al, 2
je 0x300608d6
test al, 4
jne 0x300608d6
lea eax, [ebx + 4]
lea ecx, [ebp - 0x48]
push eax
call fcn.3000904f
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 9
call fcn.3000906c
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
call fcn.30080020
mov edi, eax
lea eax, [ebx + 0xb0]
push eax
lea ecx, [edi + 0xb0]
call fcn.30016390
push dword [ebp - 0x14]
lea ecx, [ebx + 4]
call fcn.3003d0f0
push 0xd8
call fcn.3000882f
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
mov byte [ebp - 4], 0xa
je 0x300608bd
push edi
call fcn.3005fcbf
mov esi, eax
mov ecx, edi
mov byte [ebp - 4], 9
mov dword [ebp - 0x20], esi
mov dword [esi + 0x34], 6
call fcn.30061f8e
xor edi, edi
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x1c], edi
call fcn.3000906c
mov dword [ebp - 0x14], eax
mov eax, dword [0x301559b8]
push eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x28], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 1
push edi
push esi
mov ecx, 0x301559a0
mov byte [ebp - 4], 0xb
call fcn.30021e2e
cmp dword [ebp - 0x14], edi
jne 0x300608c4
push dword [ebp - 0x18]
or byte [esi + 0xd1], 0x10
mov byte [ebp - 4], 9
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
and dword [ebx + 0x18], edi
and byte [ebp - 4], 0
mov dword [ebx + 0x34], 6
lea ecx, [ebp - 0x48]
call fcn.300090a0
jmp 0x3006036b
xor esi, esi
jmp 0x30060840
push dword [ebp - 0x18]
mov byte [ebp - 4], 9
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x300607f5
mov ecx, dword [ebx + 0x18]
call fcn.30080020
push dword [ebx + 0x18]
lea ecx, [ebx + 4]
mov edi, eax
call fcn.3003d0f0
push 0xd8
call fcn.3000882f
pop ecx
mov ecx, eax
mov dword [ebp - 0x28], ecx
cmp ecx, esi
mov byte [ebp - 4], 0xc
je 0x30060972
push edi
call fcn.3005fcbf
mov esi, eax
and byte [ebp - 4], 0
mov ecx, edi
mov dword [ebp - 0x20], esi
mov dword [esi + 0x34], 6
call fcn.30061f8e
xor edi, edi
lea ecx, [ebx + 4]
mov dword [ebp - 0x1c], edi
call fcn.3002e214
test eax, eax
mov dword [ebx + 0x18], eax
je 0x30060976
mov dword [ebx + 0x34], 5
mov eax, dword [0x301559b8]
push eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x28], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 1
push 0
push esi
mov ecx, 0x301559a0
mov byte [ebp - 4], 0xd
call fcn.30021e2e
push dword [ebp - 0x18]
and byte [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x3006036b
xor esi, esi
jmp 0x3006090b
mov dword [ebx + 0x34], 6
or byte [esi + 0xd1], 0x10
jmp 0x3006093b
push 0xd8
call fcn.3000882f
pop ecx
mov ecx, eax
mov dword [ebp - 0x28], ecx
cmp ecx, esi
mov byte [ebp - 4], 0xe
je 0x300609fb
push ebx
call fcn.3005fcbf
mov esi, eax
or byte [esi + 0xd1], 0x10
and byte [ebp - 4], 0
mov dword [esi + 0x34], 6
mov ebx, dword [0x301559b8]
push ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 1
push 0
push esi
mov ecx, 0x301559a0
mov byte [ebp - 4], 0xf
call fcn.30021e2e
and byte [ebp - 4], 0
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x34], 6
mov ebx, dword [ebp + 0xc]
jmp 0x3006036b
xor esi, esi
jmp 0x300609a6
mov dword [ebx + 0x34], 4
mov ecx, dword [ebx + 0x24]
push edi
push ebx
mov eax, dword [ecx]
mov byte [ebp - 4], 7
call dword [eax + 0x4c]
cmp eax, esi
jne 0x300605d6
and dword [ebp - 4], 0
jmp 0x300609f3
mov ecx, dword [ebx + 0x18]
call fcn.30080020
mov edi, eax
mov dword [ebp - 0x1c], edi
or byte [edi + 0xd1], 0x80
mov ax, word [ebx + 0xd0]
test al, 1
je 0x300607a1
test al, 4
jne 0x30060c24
lea eax, [ebx + 4]
lea ecx, [ebp - 0x5c]
push eax
call fcn.3000904f
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x5c]
call fcn.3000906c
test eax, eax
je 0x30060c0e
mov ecx, eax
call fcn.30080020
mov esi, eax
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x30060bdd
cmp eax, 4
je 0x30060b72
push 0x30157df0
push 1
call fcn.3005b54d
pop ecx
mov dword [ebp - 0x30], eax
pop ecx
lea eax, [ebp - 0x30]
push 0x30123408
push eax
call fcn.30020a74
push dword [ebx + 0x24]
lea ecx, [esi + 0x20]
call fcn.30062280
mov eax, dword [ebx + 0x38]
mov dword [esi + 0x38], eax
test byte [ebx + 0xd0], 0x10
movzx eax, word [esi + 0xd0]
je 0x30060be9
or al, 0x10
mov word [esi + 0xd0], ax
mov eax, dword [ebx + 0x3c]
mov dword [esi + 0x3c], eax
test byte [ebx + 0xd0], 0x40
movzx eax, word [esi + 0xd0]
je 0x30060bf0
or al, 0x40
mov word [esi + 0xd0], ax
test byte [ebx + 0xd0], 0x80
movzx eax, ax
je 0x30060bf7
or al, 0x80
mov ecx, 0x200
mov word [esi + 0xd0], ax
test word [ebx + 0xd0], cx
movzx eax, ax
je 0x30060bfe
or eax, ecx
mov ecx, 0x400
mov word [esi + 0xd0], ax
test word [ebx + 0xd0], cx
movzx eax, ax
je 0x30060c06
or eax, ecx
mov word [esi + 0xd0], ax
jmp 0x30060a7b
lea ecx, [esi + 0x68]
call fcn.30062159
lea eax, [ebx + 0x68]
lea ecx, [ebp - 0x7c]
push eax
call fcn.3000904f
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.30061798
lea ecx, [esi + 0x48]
call fcn.3002e214
mov edi, eax
lea ecx, [ebp - 0x7c]
call fcn.3000906c
test eax, eax
je 0x30060bc5
mov edx, dword [eax]
mov ecx, dword [edi + 4]
cmp edx, ecx
jge 0x30060b9b
mov eax, dword [eax + 4]
cmp eax, ecx
jl 0x30060bb9
mov eax, ecx
push eax
push edx
lea ecx, [esi + 0x68]
call fcn.300620df
jmp 0x30060b9b
mov ecx, esi
call fcn.300619d9
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 5
call fcn.300090a0
jmp 0x30060ac7
mov ecx, esi
call fcn.30061881
jmp 0x30060ac7
and al, 0xef
jmp 0x30060aee
and al, 0xbf
jmp 0x30060b11
and al, 0x7f
jmp 0x30060b2a
and ah, 0xfd
jmp 0x30060b48
and ah, 0xfb
jmp 0x30060b66
and byte [ebp - 4], 0
mov edi, ebx
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x1c], edi
call fcn.300090a0
jmp 0x300607a1
lea eax, [edi + 0x20]
lea ecx, [ebx + 0x20]
push eax
call fcn.3006224f
jmp 0x300607a1
mov ecx, dword [ebx + 0x24]
push edi
push ebx
mov eax, dword [ecx]
call dword [eax + 0x48]
cmp eax, esi
mov dword [ebx + 0x34], 2
je 0x3006036b
jmp 0x300605d6
cmp dword [ebx + 0xc], esi
jne 0x30060c77
push 0x30157df0
push 0xb
call fcn.3005b54d
pop ecx
mov dword [ebp - 0x24], eax
pop ecx
lea eax, [ebp - 0x24]
push 0x30123408
push eax
call fcn.30020a74
lea eax, [ebx + 4]
lea ecx, [ebp - 0x6c]
push eax
call fcn.3000904f
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x6c]
call fcn.3000906c
mov esi, eax
test esi, esi
je 0x30060cac
mov ecx, esi
call fcn.30080020
mov edi, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], edi
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], esi
jmp 0x30060c87
lea ecx, [ebx + 4]
call fcn.3002e214
and byte [ebp - 4], 0
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x34], 5
lea ecx, [ebp - 0x6c]
jmp 0x300608b3