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

Disassembly:
push 0xffffffffffffffff
push 0x49f427
mov eax, dword fs:[0]
push eax
sub esp, 0x56c
mov eax, dword [str.Open_0_2]
xor eax, esp
mov dword [esp + 0x568], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [str.Open_0_2]
xor eax, esp
push eax
lea eax, [esp + 0x580]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esp + 0x590]
xor ebp, ebp
push 0x4a7734
push eax
mov dword [esp + 0x590], ebp
mov dword [esi + 0x3d30], ebp
mov dword [esi + 0x1b98], ebp
call fcn.0046efdc
add esp, 8
cmp eax, ebp
sete al
test al, al
je 0x41fb78
call fcn.00431af2
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41f7de
push 0x80004005
call fcn.00401dc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x588], 1
call fcn.00431af2
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41f810
push 0x80004005
call fcn.00401dc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x588], 2
call fcn.00431af2
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41f842
push 0x80004005
call fcn.00401dc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
push ebp
push 0x4a5b6b
lea ecx, [esp + 0x30]
mov byte [esp + 0x590], 3
call fcn.00405dc0
push 0x4a6400
lea ecx, [esi + 0x1b2c]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0040bd30
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x58c], 4
call fcn.00406470
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x588], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f8bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x400
lea ecx, [esp + 0x180]
push ebp
push ecx
call fcn.0046f080
mov edx, dword [esp + 0x2c]
add esp, 0xc
push edx
push 0x400
lea eax, [esp + 0x184]
push eax
push 0x4a5b6b
push 0x4a772c
push 0x4a7724
call dword [0x4a545c]
lea ecx, [esp + 0x17c]
push ecx
lea edx, [esp + 0x2c]
push 0x4a63e8
push edx
call fcn.004066f0
add esp, 0xc
call fcn.00431af2
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41f92d
push 0x80004005
call fcn.00401dc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
push 0x104
lea ecx, [esp + 0x79]
push ebp
push ecx
mov byte [esp + 0x594], 5
mov byte [esp + 0x80], 0
call fcn.0046f080
add esp, 0xc
push 0x104
lea edx, [esp + 0x78]
push edx
push ebp
call dword [0x4a5458]
lea eax, [esp + 0x74]
push 0x5c
push eax
call fcn.0046f44c
add esp, 8
mov byte [eax + 1], 0
call fcn.00431af2
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41f99e
push 0x80004005
call fcn.00401dc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ecx, [eax + 0x10]
mov dword [esp + 0x14], ecx
cmp byte [esp + 0x74], 0
mov byte [esp + 0x588], 6
je 0x41fa32
lea edi, [esp + 0x74]
mov dword [esp + 0x18], edi
mov bl, byte [edi]
cmp bl, 0x5c
je 0x41fa12
mov ebp, dword [ecx - 0xc]
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
lea edi, [ebp + 1]
sub eax, edi
or eax, edx
jge 0x41f9f1
push edi
lea ecx, [esp + 0x18]
call fcn.004047d0
mov ecx, dword [esp + 0x14]
mov byte [ecx + ebp], bl
test edi, edi
jl 0x41fba3
cmp edi, dword [ecx - 8]
jg 0x41fba3
mov dword [ecx - 0xc], edi
mov byte [edi + ecx], 0
mov edi, dword [esp + 0x18]
jmp 0x41fa26
push 1
push 0x4a7548
lea ecx, [esp + 0x1c]
call fcn.0040b8c0
mov ecx, dword [esp + 0x14]
inc edi
cmp byte [edi], 0
mov dword [esp + 0x18], edi
jne 0x41f9c5
xor ebp, ebp
lea ecx, [esp + 0x17c]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.0040bd30
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x58c], 7
call fcn.00406470
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x588], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fa86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x2f
push 0x5c
lea ecx, [esp + 0x1c]
call fcn.0040b9a0
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call fcn.0041b120
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x594]
call fcn.00406470
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x588], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fad8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x588], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fb00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x588], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fb28
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x588], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fb50
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x588], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fb78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x590]
cmp dword [ecx - 0xc], 2
jge 0x41fdbb
call fcn.00431af2
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41fbad
push 0x80004005
call fcn.00401dc0
push 0x80070057
call fcn.00401dc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x2c], edi
mov byte [esp + 0x588], 8
call fcn.00431af2
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41fbdf
push 0x80004005
call fcn.00401dc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x588], 9
call fcn.00431af2
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41fc11
push 0x80004005
call fcn.00401dc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push ebp
mov bl, 0xa
push 0x4a5b6b
lea ecx, [esp + 0x1c]
mov byte [esp + 0x590], bl
call fcn.00405dc0
push 0x4a6400
add esi, 0x1b2c
lea ecx, [esp + 0x28]
push esi
push ecx
call fcn.0040bd30
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58c], 0xb
call fcn.00406470
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x588], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41fc8b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x400
lea ecx, [esp + 0x180]
push ebp
push ecx
call fcn.0046f080
mov esi, dword [esp + 0x24]
add esp, 0xc
push esi
push 0x400
lea edx, [esp + 0x184]
push edx
push 0x4a5b6b
push 0x4a771c
push 0x4a7718
call dword [0x4a545c]
lea eax, [esp + 0x17c]
push eax
lea ecx, [esp + 0x18]
push 0x4a63e8
push ecx
call fcn.004066f0
add esp, 0xc
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x594]
call fcn.00406470
lea eax, [esi - 0x10]
mov byte [esp + 0x588], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fd17
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x588], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fd3f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x588], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fd63
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x590]
add eax, 0xfffffff0
mov dword [esp + 0x588], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fd91
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x580]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x568]
xor ecx, esp
call fcn.0046e335
add esp, 0x578
ret 4
lea edx, [esp + 0x590]
lea ecx, [esi + 0x1bac]
push edx
mov dword [esp + 0x20], ebp
call fcn.00406470
mov edx, dword [esp + 0x590]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x41fdfc
push ebp
lea ecx, [esp + 0x594]
call fcn.004047d0
mov edx, dword [esp + 0x590]
mov eax, dword [esi + 0x1ba0]
mov ebx, dword [0x4a540c]
mov dword [esp + 0x30], edx
cmp eax, ebp
je 0x41fea6
push 0xffffffffffffffff
push eax
call dword [0x4a5570]
mov eax, dword [esi + 0x1ba0]
push eax
call dword [0x4a556c]
call fcn.00431af2
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41fe44
push 0x80004005
call fcn.00401dc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 0x1ba0]
push ecx
lea edx, [esp + 0x1c]
push 0x4a7704
push edx
mov byte [esp + 0x594], 0xc
call fcn.004066f0
mov edi, dword [esp + 0x24]
add esp, 0xc
push edi
call ebx
lea eax, [edi - 0x10]
mov dword [esi + 0x1ba0], ebp
mov byte [esp + 0x588], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fea6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 1
lea eax, [esi + 0x1b30]
push eax
lea ecx, [esp + 0x24]
push ecx
push 1
lea edx, [esp + 0x40]
push edx
call dword [0x4a5588]
mov dword [esi + 0x1ba0], eax
mov eax, dword [esp + 0x590]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0046eff3
add esp, 8
cmp eax, ebp
jl 0x41fba3
mov ecx, dword [esp + 0x590]
cmp eax, dword [ecx - 8]
jg 0x41fba3
mov dword [ecx - 0xc], eax
mov ecx, dword [esp + 0x590]
mov byte [eax + ecx], 0
call fcn.00431af2
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x41ff1b
push 0x80004005
call fcn.00401dc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 0x1ba0]
push ecx
lea edx, [esp + 0x18]
push 0x4a76e8
push edx
mov byte [esp + 0x594], 0xd
call fcn.004066f0
mov edi, dword [esp + 0x20]
add esp, 0xc
push edi
call ebx
mov ebx, 1
cmp dword [esp + 0x1c], ebx
jne 0x41ff64
mov dword [esi + 0x1cdc], ebx
mov ecx, esi
call fcn.00415050
mov eax, dword [esi + 0x1ba0]
cmp eax, ebp
je 0x41fd3f
push 0x41d220
push esi
push eax
mov dword [esi + 0x1b4c], ebx
call dword [0x4a5584]
mov eax, dword [esi + 0x1ba0]
push 0x41eb30
push esi
push eax
call dword [0x4a5580]
mov ecx, esi
call fcn.00411d00
mov ecx, esi
call fcn.00417b10
mov edx, dword [esi + 0x1e4c]
mov eax, dword [edx + 0x44]
mov dword [esi + 0x1ba4], ebp
lea ebp, [esi + 0x1e4c]
mov ecx, ebp
mov dword [esi + 0x1c3c], 0xffffffff
call eax
mov edx, dword [ebp]
mov eax, dword [edx + 0x40]
mov ecx, ebp
call eax
lea ecx, [esi + 0xcb4]
call fcn.0040cc80
xor eax, eax
lea ebx, [esi + 0x1b50]
mov dword [esi + 0x1db0], eax
mov dword [esi + 0x1dac], eax
mov edx, ebx
lea eax, [esi + 0x1ce4]
mov edi, 0x10
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [edx], 0xffffffff
add edx, 4
add eax, 0xc
sub edi, 1
jne 0x420006
mov ecx, esi
call fcn.00415050
push 0x3c
lea ecx, [esp + 0x3c]
push edi
push ecx
mov dword [esp + 0x40], edi
call fcn.0046f080
add esp, 0xc
cmp dword [esp + 0x1c], edi
jle 0x420080
mov dword [esp + 0x18], edi
lea edx, [edi + 0x456]
push edx
mov ecx, esi
call fcn.0043256f
test eax, eax
je 0x42005b
mov eax, dword [eax + 0x20]
mov ecx, dword [esi + 0x1b30]
mov dword [esp + edi*4 + 0x34], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + ecx + 0x14]
mov dword [ebx], edx
inc edi
add eax, 0x14
add ebx, 4
cmp edi, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jl 0x420046
mov ecx, dword [esi + 0x1ba0]
push 0
push 0
push 0
push 0
push edi
lea eax, [esp + 0x48]
push eax
push ecx
call dword [0x4a557c]
test eax, eax
je 0x4200c0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x588], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x41fd57
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp]
mov eax, dword [edx + 0x4c]
mov dword [esi + 0x1c50], ecx
push 1
mov ecx, ebp
call eax
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.00412f90
mov edx, dword [ebp]
mov eax, dword [edx + 0x14]
mov ecx, ebp
call eax
mov ecx, dword [esi + 0x1cd8]
push ecx
mov ecx, esi
call fcn.00411bd0
push 1
mov ecx, esi
call fcn.00418a80
jmp 0x42009f