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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
mov ebx, ecx
mov dword [esp + 8], edx
push esi
push edi
xor edi, edi
mov dword [esp + 0x24], ebx
mov esi, dword [ebx]
mov dword [esp + 0x14], 0
mov dword [esp + 0x34], esi
cmp byte [esi + 0x49], 0
mov eax, dword [esi + 0x18]
mov dword [esp + 0x28], eax
jne 0x44619b
mov ecx, edx
mov edx, dword [ecx + 8]
test edx, edx
je 0x445afb
xor ecx, ecx
cmp dword [esi + 0x14], ecx
jle 0x445aed
mov eax, dword [esi + 0x10]
add eax, 0xc
nop dword [eax]
cmp dword [eax], edx
je 0x445aed
inc ecx
add eax, 0x10
cmp ecx, dword [esi + 0x14]
jl 0x445ae0
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov ecx, dword [esp + 0x10]
jmp 0x445afe
mov eax, dword [ecx + 0xc]
push eax
push dword [ecx + 0x10]
xor edx, edx
mov ecx, ebx
call fcn.0044a470
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
je 0x446197
mov edx, dword [eax + 0x48]
mov ecx, 0xfff0bdc0
mov dword [esp + 0x2c], ecx
test edx, edx
je 0x445b5a
mov eax, dword [ebx]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], eax
cmp dword [eax + 0x14], ecx
jle 0x445b5a
mov eax, dword [eax + 0x10]
mov ebx, dword [esp + 0x38]
add eax, 0xc
cmp dword [eax], edx
je 0x445b52
inc ecx
add eax, 0x10
cmp ecx, dword [ebx + 0x14]
jl 0x445b45
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov eax, dword [esi + 0x10]
shl ecx, 4
mov dword [esp + 0x3c], ecx
mov eax, dword [ecx + eax]
or dword [esi + 0x18], 2
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x44617e
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
test eax, eax
jne 0x445b91
mov dword [esp + 0x14], eax
jmp 0x445bc9
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, esi
call fcn.00405440
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x445bc9
push dword [esp + 0x30]
push dword [esp + 0x3c]
push eax
call fcn.004e8950
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov byte [ecx + eax], 0
mov ecx, eax
call fcn.004082d0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x446197
push dword [esp + 0x1c]
mov edx, eax
mov ecx, esi
call fcn.0044a340
add esp, 4
test eax, eax
jne 0x446170
push dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, esi
call fcn.0044a600
add esp, 4
test eax, eax
jne 0x446170
mov edx, dword [esp + 0xc]
mov ecx, ebx
mov edx, dword [edx]
call fcn.00445a00
test eax, eax
jne 0x446197
mov edx, dword [esp + 0x14]
mov ecx, ebx
call fcn.0044b050
test eax, eax
jne 0x446197
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
cmp dword [eax + 0xc], edi
je 0x445c64
push ecx
push 0x53a0bc
push ebx
call fcn.004081e0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, esi
call fcn.00451220
mov ecx, dword [esp + 0x14]
jmp 0x4461aa
push 0
push ecx
push dword [esp + 0x24]
mov edx, 0x1a
mov ecx, ebx
call fcn.00449a30
add esp, 0xc
test eax, eax
jne 0x446197
mov edx, dword [esp + 0xc]
mov ecx, ebx
call fcn.0044dac0
test eax, eax
jne 0x446197
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
cmp dword [ecx + 0x38], edi
je 0x445ccd
mov edi, dword [ecx + 0x40]
mov dword [esp + 0x18], eax
test edi, edi
je 0x445cc0
mov dword [esp + 0x18], eax
cmp dword [edi], esi
je 0x445cc0
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x445cb5
mov eax, dword [edi + 8]
xor ecx, ecx
mov eax, dword [eax]
cmp dword [eax + 0x4c], ecx
cmove edi, ecx
mov eax, dword [ebx + 8]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x445cfc
cmp dword [ebx + 0x78], eax
jne 0x445ce9
mov eax, dword [ebx]
test byte [eax + 0x44], 8
jne 0x445ce9
mov byte [ebx + 0x17], 1
mov ecx, ebx
call fcn.00425fe0
mov dword [esp + 0x20], eax
test eax, eax
je 0x446197
mov eax, dword [ebx + 0x78]
mov ecx, ebx
mov edx, dword [esp + 0x2c]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [ecx + 0x5c]
mov ecx, edx
mov dword [esp + 0x38], eax
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x30]
test dword [esp + 0x38], eax
jne 0x445d44
mov eax, dword [esp + 0x38]
bts eax, edx
mov dword [ecx + 0x5c], eax
cmp edx, 1
jne 0x445d44
call fcn.004519b0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x58]
mov esi, dword [esp + 0x3c]
bts eax, edx
mov dword [ecx + 0x58], eax
test edi, edi
setne al
or byte [ecx + 0x14], al
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + esi + 0xc]
mov eax, dword [eax]
inc eax
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x88]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0xc]
mov esi, dword [esp + 0x30]
cmp dword [eax + 0x30], esi
jg 0x445d9c
push dword [esp + 0x38]
push 1
push edx
mov edx, 0x66
call fcn.00426240
add esp, 0xc
jmp 0x445dd8
mov eax, dword [esp + 0x30]
inc eax
mov dword [ecx + 0x88], eax
mov eax, dword [esp + 0x30]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x66
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x34]
test edi, edi
je 0x445ec3
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov edx, eax
push dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
call fcn.004262f0
mov edx, dword [esp + 0x24]
add esp, 4
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x88]
mov dword [esp + 0x3c], ecx
cmp dword [eax + 0x30], ecx
jg 0x445e37
mov ecx, dword [esp + 0x20]
mov edx, 0x9e
push 0
push 0
push dword [esp + 0x40]
call fcn.00426240
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov ecx, eax
jmp 0x445e75
mov esi, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [edx + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x58]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x9e
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx]
cmp byte [eax + 0x49], 0
jne 0x445eb5
test ecx, ecx
jns 0x445e88
mov ecx, dword [edx + 0x88]
dec ecx
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x58]
cmp byte [eax + edx*4 + 1], 0
lea eax, [eax + edx*4]
je 0x445eab
push 0xfffffffffffffff4
push edi
mov edx, eax
call fcn.00426c90
add esp, 8
jmp 0x445eb5
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf4
inc dword [edi + 0xc]
mov eax, dword [ebx + 0x78]
mov ecx, ebx
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov edi, dword [esp + 0xc]
mov dword [esp + 0x20], 0
mov eax, dword [edi]
mov ecx, eax
mov dword [esp + 0x2c], eax
cmp byte [eax], 0
je 0x445f0b
nop dword [eax]
cmp ecx, 0xffffffff
jae 0x445f07
mov al, byte [ecx]
inc ecx
cmp al, 0xc0
jb 0x445efe
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x445efe
mov al, byte [ecx + 1]
inc ecx
and al, 0xc0
cmp al, 0x80
je 0x445ef4
inc dword [esp + 0x20]
cmp byte [ecx], 0
jne 0x445ee0
mov eax, dword [esp + 0x2c]
test dword [esi + 0x1c], 0x4000
je 0x446010
mov ecx, dword [edi + 0x48]
xor ebx, ebx
add ecx, 0x38
mov edx, eax
push ebx
call fcn.00409680
add esp, 4
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
test eax, eax
je 0x4460d4
mov esi, dword [esp + 0x24]
nop
mov eax, dword [eax]
mov edi, dword [esi]
mov eax, dword [eax]
push eax
test ebx, ebx
jne 0x445f5d
push 0x53a020
push edi
call fcn.00407470
add esp, 0xc
mov edi, eax
jmp 0x445fb5
push ebx
push 0x53a028
push edi
call fcn.00407470
add esp, 0x10
mov dword [esp + 0x30], eax
test edi, edi
je 0x445fa8
cmp dword [edi + 0x1d0], 0
je 0x445f88
mov edx, ebx
mov ecx, edi
call fcn.004050c0
jmp 0x445fb1
cmp ebx, dword [edi + 0x128]
jb 0x445fa8
cmp ebx, dword [edi + 0x12c]
jae 0x445fa8
mov eax, dword [edi + 0x124]
mov dword [ebx], eax
mov dword [edi + 0x124], ebx
jmp 0x445fb1
push ebx
call fcn.00405050
add esp, 4
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
mov ebx, edi
mov eax, dword [eax + 0xc]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x445f40
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x24]
test edi, edi
je 0x44600c
push edi
push dword [esp + 0x1c]
push dword [esp + 0x34]
push 0x5398b4
push dword [esp + 0x2c]
push 0x53a0d8
push ebx
call fcn.0044a1b0
add esp, 0x1c
cmp dword [esi + 0x1d0], 0
je 0x4460a3
mov edx, edi
mov ecx, esi
call fcn.004050c0
mov edi, dword [esp + 0xc]
push dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x24]
push eax
push eax
push eax
push eax
push eax
push 0x5398b4
push dword [esp + 0x3c]
push 0x53a120
push ebx
call fcn.0044a1b0
add esp, 0x2c
mov edx, 0x53a2a0
mov ecx, esi
push dword [esp + 0x1c]
call fcn.0044a340
add esp, 4
test eax, eax
je 0x446067
push dword [edi]
push dword [esp + 0x1c]
push dword [esp + 0x24]
push 0x53a2b0
push ebx
call fcn.0044a1b0
add esp, 0x14
mov edx, edi
mov ecx, ebx
call fcn.00445670
mov edi, eax
test edi, edi
je 0x446106
mov eax, dword [esp + 0x18]
push edi
push eax
push eax
push 0x53a2f0
push ebx
call fcn.0044a1b0
add esp, 0x14
cmp dword [esi + 0x1d0], 0
je 0x4460dd
mov edx, edi
mov ecx, esi
call fcn.004050c0
jmp 0x446106
cmp edi, dword [esi + 0x128]
jb 0x4460c6
cmp edi, dword [esi + 0x12c]
jae 0x4460c6
mov eax, dword [esi + 0x124]
mov dword [edi], eax
mov dword [esi + 0x124], edi
jmp 0x44600c
push edi
call fcn.00405050
add esp, 4
jmp 0x44600c
mov ebx, dword [esp + 0x24]
jmp 0x446010
cmp edi, dword [esi + 0x128]
jb 0x4460fd
cmp edi, dword [esi + 0x12c]
jae 0x4460fd
mov eax, dword [esi + 0x124]
mov dword [edi], eax
mov dword [esi + 0x124], edi
jmp 0x446106
push edi
call fcn.00405050
add esp, 4
test dword [esi + 0x1c], 0x4000
je 0x44614d
mov eax, dword [esp + 0xc]
push 0
mov ecx, dword [eax + 0x48]
mov edx, dword [eax]
add ecx, 0x38
call fcn.00409680
add esp, 4
mov edi, dword [eax + 8]
test edi, edi
je 0x44614d
mov eax, dword [esp + 0xc]
mov edx, dword [edi]
cmp edx, eax
je 0x446146
push dword [edx]
mov ecx, ebx
call fcn.004457a0
mov eax, dword [esp + 0x10]
add esp, 4
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x446130
push dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, ebx
call fcn.004457a0
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, esi
call fcn.00451220
mov ecx, dword [esp + 0x14]
jmp 0x4461aa
push dword [esp + 0x14]
push 0x53a080
jmp 0x445c47
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.00451220
mov eax, dword [esp + 0x28]
mov dword [esi + 0x18], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.00451220
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4461ff
cmp dword [esi + 0x1d0], 0
je 0x4461ca
mov edx, ecx
mov ecx, esi
call fcn.004050c0
mov eax, dword [esp + 0x28]
mov dword [esi + 0x18], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, dword [esi + 0x128]
jb 0x4461f6
cmp ecx, dword [esi + 0x12c]
jae 0x4461f6
mov eax, dword [esi + 0x124]
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x124], ecx
mov dword [esi + 0x18], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
call fcn.00405050
add esp, 4
mov eax, dword [esp + 0x28]
pop edi
mov dword [esi + 0x18], eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret