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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5bcddf
mov eax, dword fs:[0]
push eax
sub esp, 0x90
push ebx
push esi
push edi
mov eax, dword [0x621d30]
xor eax, esp
push eax
lea eax, [esp + 0xa0]
mov dword fs:[0], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], 0
mov edx, dword [ebp + 8]
test edx, edx
js 0x45bb6e
cmp edx, dword [ecx + 0x120]
jge 0x45bb6e
mov eax, dword [ebp + 0xc]
test eax, eax
js 0x45bb6e
cmp eax, dword [ecx + 0x128]
jge 0x45bb6e
cmp dword [ecx + 0xbc], 0
je 0x45bb6e
push eax
push edx
call fcn.00457090
test eax, eax
je 0x45bafd
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x48]
call eax
test al, 8
jne 0x45bb6e
mov esi, dword [ebp + 0x10]
push 0
push 1
mov ecx, esi
call fcn.00498e06
test eax, eax
je 0x45bb6e
push 0
push 1
mov ecx, esi
call fcn.00498eb4
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalSize]
mov edi, eax
push 0
push edi
call ebx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
lea ecx, [esp + 0x7c]
call fcn.004989d3
push edi
mov dword [esp + 0xac], 0
call ebx
push eax
call fcn.0048970d
mov esi, eax
add esp, 4
test esi, esi
jne 0x45bb88
lea ecx, [esp + 0x70]
mov dword [esp + 0xa8], 0xffffffff
call fcn.00498d45
xor eax, eax
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push edi
call ebx
push eax
push esi
lea ecx, [esp + 0x78]
call fcn.00498b0e
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
lea ecx, [esp + 0x38]
call fcn.00467220
push esi
mov byte [esp + 0xac], 1
call fcn.00489718
add esp, 4
lea esi, [esp + 0x34]
call fcn.00464c80
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
push eax
call fcn.00453e70
add eax, 0x10
add esp, 4
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x20]
mov byte [esp + 0xa8], 2
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
or eax, 0xffffffff
mov dword [esp + 0x28], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x18]
or ebx, 0xffffffff
cmp dword [esi - 0xc], 0
mov dword [esp + 0x30], 0
jge 0x45bc29
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x14]
mov eax, 0x5ecfb8
jmp 0x45bc88
push 0x5ef22c
push esi
call fcn.00593168
add esp, 8
test eax, eax
jne 0x45bc4a
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x14]
mov eax, 0x5ecfb8
jmp 0x45bc88
sub eax, esi
sar eax, 1
mov dword [esp + 0x24], eax
jns 0x45bc5f
mov ebx, dword [esp + 0x14]
mov eax, 0x5ecfb8
jmp 0x45bc88
mov eax, dword [esp + 0x24]
inc eax
push eax
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x20]
call fcn.004566d0
mov byte [esp + 0xa8], 3
mov ebx, dword [esp + 0x14]
mov eax, dword [eax]
or ebx, 1
mov dword [esp + 0x14], ebx
push eax
lea ecx, [esp + 0x44]
call fcn.00454490
mov dword [esp + 0xa8], 5
test bl, 1
je 0x45bcc9
mov eax, dword [esp + 0x6c]
and ebx, 0xfffffffe
add eax, 0xfffffff0
mov dword [esp + 0x14], ebx
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45bcc9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x24], 0
jl 0x45bd21
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x20]
call fcn.00456700
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xac], 6
call fcn.00453ee0
mov byte [esp + 0xa8], 5
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45bd1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x18]
push 0x5ef230
push esi
call fcn.005931c8
add esp, 8
test eax, eax
jne 0x45bee0
mov dword [esp + 0x2c], 0xffffffff
lea eax, [esi - 0x10]
push eax
call fcn.00453e70
add eax, 0x10
add esp, 4
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0xa8], 8
or ebx, 4
mov eax, dword [eax]
sub eax, 0x10
push eax
mov dword [esp + 0x18], ebx
call fcn.00453e70
add eax, 0x10
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0xa8], 0xa
test bl, 4
je 0x45bdb4
mov eax, dword [esp + 0x3c]
and ebx, 0xfffffffb
add eax, 0xfffffff0
mov dword [esp + 0x14], ebx
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45bdb4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa8], 0xb
test bl, 2
je 0x45bde8
mov eax, dword [esp + 0x58]
and ebx, 0xfffffffd
add eax, 0xfffffff0
mov dword [esp + 0x14], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45bde8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x28]
mov eax, dword [edi + 0x120]
mov dword [esp + 0x38], ebx
cmp ebx, eax
jge 0x45be30
mov ecx, 1
test ebx, ebx
js 0x45be22
cmp ebx, eax
jge 0x45be22
cmp ebx, dword [edi + 0x138]
jge 0x45c29d
mov edx, dword [edi + 0x134]
cmp dword [edx + ebx*4], 0
jg 0x45be30
add dword [esp + 0x28], ecx
add ebx, ecx
mov dword [esp + 0x38], ebx
cmp ebx, eax
jl 0x45be02
cmp dword [esi - 0xc], 0
je 0x45c1f1
lea ebx, [ebx]
mov esi, dword [esp + 0x30]
add esi, dword [ebp + 0xc]
mov ecx, dword [edi + 0x128]
cmp esi, ecx
jge 0x45be8d
test esi, esi
js 0x45be84
cmp esi, ecx
jge 0x45be84
mov edx, dword [edi + 0x49c]
lea eax, [edx + esi*4]
mov eax, dword [eax]
test eax, eax
js 0x45c29d
cmp eax, dword [edi + 0x14c]
jge 0x45c29d
mov edx, dword [edi + 0x148]
cmp dword [edx + eax*4], 0
jg 0x45be8d
inc dword [esp + 0x30]
inc esi
cmp esi, ecx
jl 0x45be51
test ebx, ebx
js 0x45bf36
cmp ebx, dword [edi + 0x120]
jge 0x45bf36
test esi, esi
js 0x45bf36
cmp esi, ecx
jge 0x45bf36
lea ecx, [esp + 0x1c]
call fcn.00453030
lea ecx, [esp + 0x1c]
call fcn.00452fb0
mov eax, dword [esp + 0x1c]
push eax
push ebx
push edi
mov ecx, esi
call fcn.0045b490
push esi
push ebx
mov ecx, edi
call fcn.00457090
test eax, eax
jne 0x45bf0d
jmp 0x45bf16
sub eax, esi
sar eax, 1
mov dword [esp + 0x2c], eax
js 0x45bd3f
push eax
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x20]
call fcn.00456700
mov byte [esp + 0xa8], 7
or ebx, 2
jmp 0x45bd64
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x48]
call eax
and eax, 0xfffffffd
push eax
push esi
push ebx
push edi
call fcn.0045fa70
cmp ebx, dword [esp + 0x4c]
jle 0x45bf2c
mov dword [esp + 0x4c], ebx
cmp esi, dword [esp + 0x50]
jle 0x45bf36
mov dword [esp + 0x50], esi
cmp dword [esp + 0x2c], 0
jl 0x45bf60
mov ecx, dword [esp + 0x2c]
inc ecx
push ecx
lea edx, [esp + 0x60]
push edx
lea ecx, [esp + 0x20]
call fcn.004566d0
mov byte [esp + 0xa8], 0xc
or dword [esp + 0x14], 8
jmp 0x45bf7e
push 0x5ecfb8
lea ecx, [esp + 0x68]
call fcn.00454490
mov dword [esp + 0xa8], 0xd
or dword [esp + 0x14], 0x10
mov eax, dword [eax]
mov esi, dword [esp + 0x18]
lea ecx, [eax - 0x10]
add esi, 0xfffffff0
cmp ecx, esi
je 0x45bfdd
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x45bfcb
mov edx, dword [ecx]
cmp edx, dword [esi]
jne 0x45bfcb
push ecx
call fcn.00453e70
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x45bfbe
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x38]
jmp 0x45bfd9
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00453d90
mov edi, dword [esp + 0x20]
mov dword [esp + 0xa8], 0xc
test byte [esp + 0x14], 0x10
je 0x45c014
mov eax, dword [esp + 0x64]
and dword [esp + 0x14], 0xffffffef
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45c014
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xa8], 0xb
test byte [esp + 0x14], 8
je 0x45c04b
mov eax, dword [esp + 0x5c]
and dword [esp + 0x14], 0xfffffff7
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45c04b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x18]
push 0x5ef230
push esi
call fcn.005931c8
add esp, 8
test eax, eax
jne 0x45c093
mov dword [esp + 0x2c], 0xffffffff
mov esi, dword [esp + 0x18]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x45c0bb
cmp eax, dword [esi - 0x10]
jne 0x45c0bb
lea edi, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x45c0f3
sub eax, esi
sar eax, 1
mov dword [esp + 0x2c], eax
js 0x45c069
push eax
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x20]
call fcn.00456700
mov byte [esp + 0xa8], 0xe
or dword [esp + 0x14], 0x20
jmp 0x45c112
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x45c2a2
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00591b21
add esp, 0x10
add edi, 0x10
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0xa8], 0xf
or dword [esp + 0x14], 0x40
lea eax, [esp + 0x54]
mov eax, dword [eax]
mov esi, dword [esp + 0x1c]
lea ecx, [eax - 0x10]
add esi, 0xfffffff0
cmp ecx, esi
je 0x45c171
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x45c15f
mov edx, dword [ecx]
cmp edx, dword [esi]
jne 0x45c15f
push ecx
call fcn.00453e70
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x45c152
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x38]
jmp 0x45c16d
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
call fcn.00453d90
mov edi, dword [esp + 0x20]
mov dword [esp + 0xa8], 0xe
test byte [esp + 0x14], 0x40
je 0x45c1a8
mov eax, dword [esp + 0x54]
and dword [esp + 0x14], 0xffffffbf
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45c1a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xa8], 0xb
test byte [esp + 0x14], 0x20
je 0x45c1df
mov eax, dword [esp + 0x60]
and dword [esp + 0x14], 0xffffffdf
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45c1df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
inc dword [esp + 0x30]
cmp dword [ecx - 0xc], 0
jne 0x45be40
lea edx, [esp + 0x40]
push edx
lea ecx, [esp + 0x1c]
call fcn.00453ee0
inc dword [esp + 0x28]
mov byte [esp + 0xa8], 5
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45c22b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa8], 2
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45c253
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x24], 0
jge 0x45bc05
mov eax, dword [esp + 0x34]
mov ecx, dword [eax - 4]
test ecx, ecx
jns 0x45c276
inc ecx
mov dword [eax - 4], ecx
jne 0x45c276
mov dword [eax - 4], 1
cmp dword [ebp + 0x14], 0
je 0x45c2a7
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
push 1
push 1
push ecx
mov ecx, dword [esp + 0x50]
push edx
push eax
push ecx
mov esi, edi
call fcn.0045ad30
jmp 0x45c2b7
call fcn.0048a0e3
call fcn.00453e60
mov edi, dword [esp + 0x20]
call fcn.0045d5a0
mov ecx, edi
call fcn.004608e0
mov byte [esp + 0xa8], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45c2df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa8], 0
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45c307
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x70]
mov dword [esp + 0xa8], 0xffffffff
call fcn.00498d45
mov eax, 1
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10