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

Disassembly:
push 0xffffffffffffffff
push 0x44b479
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
mov eax, dword [0x45f640]
mov edx, dword [esp + 0x58]
xor eax, esp
push ebx
mov ebx, dword [esp + 0x50]
push ebp
push esi
push edi
push 0xa
push 0x40100000
mov esi, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x68]
push 0x3e800000
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x78]
push 0x3f400000
mov dword [esp + 0x50], ecx
lea ecx, [esi + 0x18]
push 0x11
mov dword [esp + 0x48], esi
mov dword [esp + 0x58], edx
mov dword [esp + 0x3c], eax
mov dword [esi], 0x44e1b8
call fcn.00408720
mov dword [esp + 0x54], 0
call fcn.00443a60
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x48], eax
mov dword [esi + 0x50], 0
mov ecx, dword [0x45dbd4]
mov edi, dword [0x45dbcc]
mov eax, 0xc69fb513
imul ecx
add edx, ecx
sar edx, 0x19
mov ebp, edx
mov eax, edi
imul eax, eax, 0x33bbc84
shr ebp, 0x1f
add ebp, edx
add ebp, eax
mov eax, 0x2ee68aa5
imul edi
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe8]
sub ebp, eax
imul edx, edx, 0x20e865f
mov eax, dword [0x45dbdc]
imul eax, eax, 0x362805a
add ebp, edx
add ebp, eax
mov eax, 0xc41087d7
imul ecx
add edx, ecx
sar edx, 0x1a
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0xc41087d7
imul edi
add edx, edi
sar edx, 0x1a
sub ebp, ecx
mov eax, edx
shr eax, 0x1f
add ebp, edx
add eax, ebp
mov dword [str._r_____r____], eax
mov byte [esp + 0x54], 2
mov dword [esi + 4], 1
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
lea eax, [esi + 8]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov ecx, dword [0x45dbd4]
mov edi, dword [0x45dbe4]
imul edi, edi, 0x3e6f678
mov eax, 0xc69fb513
imul ecx
add edx, ecx
sar edx, 0x19
add edi, edx
mov ebp, edx
mov edx, dword [0x45dbe0]
imul edx, edx, 0x33bbc84
shr ebp, 0x1f
add ebp, edi
mov edi, dword [0x45dbcc]
add ebp, edx
mov eax, 0x83228937
imul edi
mov eax, dword [0x45dbe8]
add edx, edi
imul eax, eax, 0x20e865f
sar edx, 0x19
mov edi, edx
add ebp, edx
shr edi, 0x1f
add edi, ebp
sub edi, eax
mov eax, 0x974409b3
imul ecx
add edx, ecx
sar edx, 0x19
mov ecx, edx
shr ecx, 0x1f
add edi, edx
mov edx, dword [str._r_____r____]
add ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x40]
add ecx, 0x276937b
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x48]
mov dword [0x45dbcc], ecx
sub esp, 0x10
mov ecx, esp
mov dword [ecx], ebx
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + 8], eax
mov byte [esp + 0x2b], 0
mov dword [ecx + 0xc], edx
call fcn.00405740
mov edi, dword [str._r_____r____]
mov ecx, dword [0x45dbdc]
mov ebp, eax
mov eax, dword [0x45dbd8]
lea ebx, [eax + edi]
imul edi, edi, 0x293e68d
mov eax, 0xc69fb513
imul ebx, ebx, 0x362805a
imul ecx
add edx, ecx
sar edx, 0x19
add ebx, edx
mov eax, edx
mov edx, ecx
imul edx, edx, 0x33bbc84
shr eax, 0x1f
add eax, ebx
add eax, edi
add esp, 0x18
add eax, edx
mov edi, dword [0x45dbe0]
mov ebx, eax
mov eax, 0x83228937
imul ecx
add edx, ecx
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
test ebp, ebp
lea ebx, [ebx + edi - 0x3e6f678]
mov dword [0x45dbd4], ebx
jl 0x409c04
mov ebx, dword [0x45dbcc]
imul ecx, ecx, 0x3e6f678
imul edi, edi, 0x35bbff4
mov edx, dword [0x45dbd0]
lea ebp, [edx + ebx]
imul ebp, ebp, 0x2baab78
add ebp, ecx
mov ecx, dword [0x45dbe4]
mov eax, 0xc69fb513
imul ecx
add edx, ecx
sar edx, 0x19
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
add eax, edi
mov ebp, eax
mov eax, 0x974409b3
imul ebx
add edx, ebx
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0xc41087d7
imul ecx
mov eax, dword [esp + 0x18]
add edx, ecx
sar edx, 0x1a
mov ecx, edx
shr ecx, 0x1f
add ebp, edx
add ecx, ebp
mov dword [0x45dbdc], ecx
mov edx, dword [eax]
lea ecx, [esp + 0x2c]
push ecx
push eax
call dword [edx + 0xc]
test eax, eax
jl 0x409788
mov edx, dword [0x45dbd4]
mov eax, dword [0x45dbc8]
mov ecx, dword [0x45dbd8]
lea ebx, [eax + edx]
mov edi, dword [str._r_____r____]
imul ebx, ebx, 0x3e78532
mov eax, 0xc69fb513
imul ecx
add edx, ecx
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, edi
imul edx, edx, 0x293e68d
sub ebx, eax
add ebx, edx
mov eax, 0x2ee68aa5
imul ecx
mov ecx, dword [0x45dbe4]
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0xcfdc5805
imul edi
add edx, edi
sar edx, 0x19
add ebx, edx
mov edi, edx
mov eax, 0xc41087d7
imul ecx
mov eax, dword [esp + 0x2c]
add edx, ecx
sar edx, 0x1a
shr edi, 0x1f
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add edi, ebx
sub edi, ecx
mov dword [0x45dbe4], edi
cmp dword [eax + 0x28], 4
jne 0x40977d
mov byte [esp + 0x13], 1
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x4c]
mov edi, dword [0x45dbc8]
mov ecx, dword [0x45dbe4]
mov ebx, dword [0x45dbd8]
imul ecx, ecx, 0x3e6f678
mov eax, 0xc69fb513
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, eax
sub ebp, ecx
mov ecx, dword [0x45dbd0]
mov edx, ecx
imul edx, edx, 0xa7d5f7
mov eax, ebx
imul eax, eax, 0x33bbc84
add ebp, edx
add ebp, eax
mov eax, 0x4c3a114b
imul dword [str._r_____r____]
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x83228937
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add ebp, edx
add eax, ebp
mov dword [0x45dbe8], eax
mov al, byte [esp + 0x13]
test al, al
je 0x409b7c
mov eax, 0x1066a8b3
imul edi, edi, 0x631527c0
imul ecx
sar edx, 0x16
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov eax, 0x4f2cca89
imul ecx
sar edx, 0x18
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov eax, 0x4c3a114b
imul ecx
sar edx, 0x18
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x974409b3
imul dword [0x45dbe4]
add edx, dword [0x45dbe4]
sar edx, 0x19
mov dword [esp + 0x14], ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe0]
imul eax, eax, 0x3e6f679
add ecx, ebx
imul edx, edx, 0x5c798ed1
add ecx, ebp
imul ecx, ecx, 0x3e6f678
sub ecx, edx
mov edx, dword [esp + 0x14]
sub ecx, eax
sub ecx, edi
add ecx, edx
mov edi, dword [0x45dbd4]
add ecx, ebx
mov ebx, dword [0x45dbe8]
add ecx, ebp
mov dword [0x45dbc8], ecx
imul ecx, ecx, 0x293e68d
mov eax, ebx
imul eax, eax, 0x3e6f678
sub ecx, eax
mov eax, 0xc69fb513
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov edi, dword [0x45dbe0]
mov eax, 0x4f2cca89
imul ebx
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x83228937
imul edi
add edx, edi
imul edi, edi, 0x3e78532
sar edx, 0x19
add ecx, edx
mov ebp, edx
mov eax, 0x7c780d21
imul ebx
shr ebp, 0x1f
add ebp, ecx
sar edx, 0x18
mov ecx, edx
add ebp, edi
shr ecx, 0x1f
mov dword [esp + 0x24], 0
add ebp, edx
mov eax, dword [esp + 0x18]
add ecx, ebp
mov dword [0x45dbd8], ecx
mov edx, dword [eax]
lea ecx, [esp + 0x20]
push ecx
push 0
push eax
call dword [edx + 0x14]
test eax, eax
jl 0x409b6a
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
lea ecx, [esp + 0x30]
push ecx
push 1
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
push ecx
push eax
call dword [edx + 0x1c]
test eax, eax
jl 0x409a4f
cmp dword [esp + 0x30], 1
jb 0x409a4f
mov edi, dword [0x45dbe8]
mov ebx, dword [0x45dbc8]
mov ecx, dword [0x45dbd4]
imul ebx, ebx, 0x293e68d
mov edx, edi
imul edx, edx, 0x3e6f678
sub ebx, edx
mov eax, 0xc69fb513
imul ecx
add edx, ecx
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x4f2cca89
imul edi
sar edx, 0x18
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ebx, ecx
mov ecx, dword [0x45dbe0]
mov eax, 0x83228937
imul ecx
add edx, ecx
imul ecx, ecx, 0x3e78532
sar edx, 0x19
mov ebp, edx
add ebx, edx
mov eax, 0x7c780d21
imul edi
shr ebp, 0x1f
sar edx, 0x18
add ebp, ebx
add ebp, ecx
mov ecx, dword [esp + 0x14]
mov eax, edx
shr eax, 0x1f
add ebp, edx
add eax, ebp
push ecx
lea ecx, [esp + 0x20]
mov dword [0x45dbd8], eax
call fcn.00409330
mov edi, eax
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
push eax
lea ecx, [esi + 0x18]
mov byte [esp + 0x58], 3
call fcn.00408d40
push edi
mov ecx, eax
call fcn.004088b0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x54], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409a44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [esp + 0x24]
mov edi, dword [0x45dbc8]
inc ecx
imul edi, edi, 0x3e6f678
mov dword [esp + 0x24], ecx
mov ecx, dword [0x45dbd0]
mov eax, 0x1066a8b3
imul ecx
sar edx, 0x16
add edi, edx
mov ebx, edx
mov eax, 0x4f2cca89
imul ecx
sar edx, 0x18
shr ebx, 0x1f
add ebx, edi
add ebx, edx
mov edi, edx
mov eax, 0x4c3a114b
imul ecx
sar edx, 0x18
mov ecx, edx
mov ebp, dword [0x45dbe4]
shr ecx, 0x1f
shr edi, 0x1f
add edi, ebx
add edi, edx
add ecx, edi
mov edi, dword [0x45dbe0]
mov edx, edi
imul edx, edx, 0xac2519
sub ecx, edx
mov eax, 0x974409b3
imul ebp
add edx, ebp
mov ebp, dword [0x45dbe8]
sar edx, 0x19
mov ebx, dword [0x45dbd4]
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov dword [0x45dbc8], ecx
imul ecx, ecx, 0x293e68d
mov edx, ebp
imul edx, edx, 0x3e6f678
sub ecx, edx
mov eax, 0xc69fb513
imul ebx
add edx, ebx
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x4f2cca89
imul ebp
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x83228937
imul edi
add edx, edi
imul edi, edi, 0x3e78532
sar edx, 0x19
add ecx, edx
mov ebx, edx
mov eax, 0x7c780d21
imul ebp
mov eax, dword [esp + 0x18]
shr ebx, 0x1f
add ebx, ecx
sar edx, 0x18
add ebx, edi
mov ecx, edx
shr ecx, 0x1f
add ebx, edx
add ecx, ebx
mov dword [0x45dbd8], ecx
mov edx, dword [eax]
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
push ecx
push eax
call dword [edx + 0x14]
test eax, eax
jge 0x409940
mov ebx, dword [0x45dbd8]
mov ecx, dword [0x45dbd0]
mov edi, dword [0x45dbc8]
mov ebp, dword [0x45dbe4]
imul ecx, ecx, 0xa7d5f7
imul ebx, ebx, 0x33bbc84
mov eax, 0xc69fb513
imul ebp, ebp, 0x3e6f678
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, ebp
add eax, ecx
add eax, ebx
mov dword [esp + 0x1c], eax
mov eax, 0x4c3a114b
imul dword [str._r_____r____]
mov eax, dword [esp + 0x1c]
sar edx, 0x18
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub eax, ecx
mov ecx, eax
mov eax, 0x83228937
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add ecx, edx
add eax, ecx
mov dword [0x45dbe8], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ebx, dword [0x45dbd4]
mov ecx, dword [0x45dbdc]
mov edi, dword [0x45dbe0]
mov eax, 0xc69fb513
imul ecx, ecx, 0x362805a
imul ebx
add edx, ebx
sar edx, 0x19
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov edx, dword [0x45dbcc]
mov eax, edx
imul eax, eax, 0x33bbc84
add ebp, eax
mov eax, 0x2ee68aa5
imul edx
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe8]
imul edx, edx, 0x20e865f
sub ebp, eax
add ebp, edx
mov eax, 0xc41087d7
imul ebx
add edx, ebx
sar edx, 0x1a
mov eax, edx
add ebp, ecx
mov ecx, dword [0x45dbcc]
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0xc41087d7
imul ecx
mov al, byte [esp + 0x13]
add edx, ecx
sar edx, 0x1a
mov ecx, edx
shr ecx, 0x1f
add ebp, edx
add ecx, ebp
test al, al
mov dword [str._r_____r____], ecx
jne 0x409cb7
mov edx, dword [0x4529c8]
mov dword [esi + 8], edx
mov eax, dword [0x4529cc]
mov dword [esi + 0xc], eax
mov ecx, dword [0x4529d0]
mov dword [esi + 0x10], ecx
mov edx, dword [0x4529d4]
mov dword [esi + 0x14], edx
mov edi, dword [0x45dbe0]
mov ecx, dword [0x45dbd0]
imul edi, edi, 0xac2519
mov ebx, dword [0x45dbc8]
imul ebx, ebx, 0x3e6f678
mov eax, 0x1066a8b3
imul ecx
sar edx, 0x16
add ebx, edx
mov ebp, edx
mov eax, 0x4f2cca89
imul ecx
shr ebp, 0x1f
add ebp, ebx
sar edx, 0x18
add ebp, edx
mov ebx, edx
mov eax, 0x4c3a114b
imul ecx
mov ecx, dword [0x45dbe4]
shr ebx, 0x1f
add ebx, ebp
sar edx, 0x18
add ebx, edx
mov ebp, edx
mov eax, 0x974409b3
imul ecx
add edx, ecx
sar edx, 0x19
shr ebp, 0x1f
add ebp, ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, edi
sub ebp, eax
lea eax, [esi + 0x50]
xor ebx, ebx
cmp eax, ebx
mov dword [0x45dbc8], ebp
je 0x409d55
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
mov edi, dword [eax]
mov dword [eax], ebx
je 0x409d4b
mov edx, dword [ecx]
push eax
push 0x44e3dc
push ecx
call dword [edx]
cmp edi, ebx
je 0x409d55
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov dword [esi + 0x54], ebx
mov ecx, dword [0x45dbd4]
mov edi, dword [0x45dbe4]
imul edi, edi, 0x3e6f678
mov eax, 0xc69fb513
imul ecx
add edx, ecx
sar edx, 0x19
add edi, edx
mov ebp, edx
mov edx, dword [0x45dbe0]
imul edx, edx, 0x33bbc84
shr ebp, 0x1f
add ebp, edi
mov edi, dword [0x45dbcc]
add ebp, edx
mov eax, 0x83228937
imul edi
mov eax, dword [0x45dbe8]
add edx, edi
imul eax, eax, 0x20e865f
sar edx, 0x19
mov edi, edx
add ebp, edx
shr edi, 0x1f
add edi, ebp
sub edi, eax
mov eax, 0x974409b3
imul ecx
add edx, ecx
sar edx, 0x19
mov ecx, edx
add edi, edx
mov edx, dword [str._r_____r____]
shr ecx, 0x1f
add ecx, edi
sub ecx, edx
add ecx, 0x276937b
mov dword [0x45dbcc], ecx
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], ebx
mov ecx, dword [0x45dbd8]
mov edi, dword [0x45dbd0]
mov eax, 0x1066a8b3
imul ecx
imul ecx, ecx, 0x5390766
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, eax
mov eax, 0xcfdc5805
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe8]
sub ebx, eax
imul edx, edx, 0x20e865f
mov eax, dword [0x45dbc8]
imul eax, eax, 0x362805a
add ebx, edx
add ebx, eax
add ebx, ecx
mov ecx, dword [0x45dbdc]
mov eax, 0xc41087d7
imul ecx
add edx, ecx
sar edx, 0x1a
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ebx, ecx
sub ebx, dword [0x45dbe4]
mov ecx, dword [esp + 0x4c]
sub ebx, 0x3e6f678
mov dword [0x45dbd0], ebx
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x40]
pop ebp
pop ebx
xor ecx, esp
call fcn.0043079d
add esp, 0x48
ret 0x14