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

Disassembly:
sub esp, 0x25c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x26c]
mov dword [esi + 0x45c], 0x4ef464
mov eax, dword [0x511a50]
test eax, eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
je 0x4438a3
mov eax, dword [esi + 0x620]
test eax, eax
je 0x44385c
mov eax, dword [esp + 0x274]
mov ecx, dword [eax + 0xc]
push ecx
push 0
push 0x44b
call fcn.0047fe20
add esp, 0xc
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x25c
ret
push 0x510c30
call edi
mov eax, dword [0x511a50]
test eax, eax
je 0x443876
mov eax, dword [esi + 0x630]
test eax, eax
je 0x443884
mov edx, dword [esi + 0x59c]
cmp edx, dword [0x4e9998]
je 0x443898
push 0x510c30
push 0x511234
call fcn.00480650
add esp, 8
jmp 0x443863
push 0x510c30
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [esp + 0x274]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
push eax
push ecx
push esi
call fcn.0043e340
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
je 0x44397b
mov ebp, dword [eax]
mov ecx, dword [ebp]
mov edx, dword [ecx]
push 0x42
call dword [edx + 0x90]
xor eax, eax
mov ecx, 0x16
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
mov eax, dword [ebp]
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x34], ecx
mov edx, dword [eax + 0x54]
mov dword [esp + 0x38], edx
mov eax, dword [ebp + 0x160]
mov edi, dword [ebp + 0xb4]
push eax
lea ecx, [esp + 0x70]
push ecx
call fcn.00489da6
mov edx, dword [ebp + 0x32c]
mov eax, dword [esp + 0x18]
push 0
push ebp
mov dword [eax], edx
call fcn.0043e0c0
lea ecx, [esp + 0x7c]
push ecx
call fcn.00484820
push 1
lea edx, [esp + 0x2c]
mov byte [eax], 0
push edx
lea eax, [esp + 0x88]
push eax
call fcn.004107d0
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
push 1
push ecx
push edx
lea eax, [esp + 0x98]
push eax
push esi
call fcn.0043fc40
add esp, 0x34
mov ebp, eax
neg ebp
sbb ebp, ebp
inc ebp
je 0x443ab3
lea ecx, [esp + 0x6c]
push ecx
push edi
call fcn.0043fd60
add esp, 8
jmp 0x443aa7
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
push 0x510994
push edx
push eax
push 0x511578
lea ecx, [esp + 0x7c]
push str._s__s__s_s
push ecx
call fcn.004b5820
push 4
push 0x50f0d4
push 0x50f0d4
lea edx, [esp + 0x90]
push edx
lea eax, [esp + 0x94]
push eax
call fcn.00480410
add esp, 0x2c
push 0x510c30
call edi
mov edi, dword [esp + 0x278]
test edi, edi
je 0x4439dc
push edi
push esi
call fcn.00422320
add esp, 8
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
push 0
push ecx
push edx
push esi
call fcn.00441270
add esp, 0x10
test eax, eax
je 0x443a12
test edi, edi
jne 0x443a16
push 0x510c30
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x25c
ret
test edi, edi
je 0x443a22
mov ecx, dword [edi]
mov eax, dword [ecx]
push 0x15
call dword [eax + 0x94]
mov eax, dword [esi + 0x480]
test eax, eax
je 0x443a3f
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
push ecx
push edx
push esi
call fcn.0043f070
add esp, 0xc
jmp 0x443a4a
push 1
push esi
call fcn.0043df20
add esp, 8
xor eax, eax
mov ecx, 0x16
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x6c]
push eax
call fcn.00484820
push 1
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x78]
push edx
mov byte [eax], 0
call fcn.004107d0
mov ebp, eax
mov eax, dword [esi + 0x480]
add esp, 0x10
neg ebp
sbb ebp, ebp
test eax, eax
je 0x443a9c
push 0
push 1
push esi
call fcn.0043f130
add esp, 0xc
test eax, eax
je 0x443a9c
or ebp, 0xffffffff
push 0x510c30
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor ebx, ebx
cmp ebp, ebx
jne 0x443be6
jmp 0x443ab5
xor ebx, ebx
mov eax, dword [esi + 0x5c8]
mov ecx, dword [esi + 0x440]
push ebx
push eax
push ecx
push esi
mov ecx, 0x5101a8
call fcn.00424120
mov ecx, dword [0x50f848]
xor edx, edx
cmp ecx, ebx
setne dl
test edx, edx
je 0x443bd6
mov eax, dword [esi + 0x490]
cmp eax, ebx
mov edx, dword [esi + 0x4a0]
mov ecx, dword [esi + 0x440]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 1
jne 0x443b0f
mov eax, dword [0x511a2c]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x454]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x630]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x5c8]
cmp eax, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ecx
mov eax, 0x41d
jne 0x443b44
mov eax, dword [esi + 0xf0]
mov edx, dword [esi + 0x5a8]
mov word [esp + 0x3c], ax
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x18], 0x4caff0
call fcn.004b6b2f
mov edx, dword [esp + 0x48]
mov edi, dword [edx + 0x4a0]
mov ecx, dword [esp + 0x14]
sub ecx, edi
mov edi, dword [esp + 0x34]
add esp, 4
cmp edi, ebx
mov dword [esp + 0x1c], ecx
je 0x443b9a
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
xor ebx, ebx
jmp 0x443b9c
xor ecx, ecx
cmp word [esp + 0x3c], 0x3e8
mov dword [esp + 0x38], ecx
jae 0x443bae
mov word [esp + 0x3c], bx
lea eax, [esp + 0x14]
push eax
mov ecx, 0x50f7b8
call fcn.00423bd0
mov eax, dword [esp + 0x28]
cmp eax, ebx
mov dword [esp + 0x14], 0x4caff0
je 0x443bd6
push eax
call fcn.00480080
add esp, 4
push ebx
push ebx
push ebx
push ebx
add esi, 0xc
push esi
call fcn.0042b6d0
add esp, 0x14
pop edi
mov eax, ebp
pop esi
neg eax
pop ebp
sbb eax, eax
pop ebx
add esp, 0x25c
ret