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

Disassembly:
jmp 0x7a7b70
sub esp, 0x50
mov eax, dword [esp + 0x58]
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x24], eax
lea eax, [esp + 0xf]
mov byte [esp + 0xf], 0
mov dword [esp + 0x28], eax
push edi
mov eax, dword [esi + 0xc]
test eax, 0x40000000
je 0x7a7b9d
mov edi, dword [esi - 4]
jmp 0x7a7ba9
and eax, 0xfffffff
mov edi, esi
shl eax, 4
sub edi, eax
call fcn.0040f40c
mov edx, dword [esi + 0xc]
add edi, 0x10
or eax, 2
mov dword [esp + 0x18], edi
and edx, 0xfffffff
test dword [esi + 0xc], 0x40000000
je 0x7a7bcf
mov esi, dword [esi - 4]
jmp 0x7a7bd6
mov ecx, edx
shl ecx, 4
sub esi, ecx
shl edx, 4
add edx, esi
mov dword [esp + 0x24], edx
cmp edi, edx
je 0x7a7f99
mov ecx, eax
and eax, 0xfffffffc
sar ecx, 1
mov dl, cl
mov dword [esp + 0x1c], ecx
and dl, 1
mov byte [esp + 0x11], dl
test dl, dl
je 0x7a7c07
test eax, eax
je 0x7a7c07
mov ebx, eax
jmp 0x7a7c16
push dword [edi]
mov ebx, eax
mov ecx, ebx
call fcn.0040e809
mov ecx, dword [esp + 0x1c]
mov dl, byte [eax + 4]
not cl
mov eax, dword [edi]
test cl, 1
mov ecx, ebx
mov byte [esp + 0x12], dl
mov esi, 0
cmove ecx, esi
cmp byte [eax + 8], 0xd
mov dword [esp + 0x1c], ecx
jne 0x7a7dfe
mov esi, dword [eax + 0x18]
lea ebp, [eax + 0x10]
cmp esi, 0x40
ja 0x7a7c57
mov eax, dword [ebp]
or eax, dword [ebp + 4]
jne 0x7a7c53
mov al, 1
jmp 0x7a7c6b
xor al, al
jmp 0x7a7c6b
mov ecx, ebp
call fcn.00412b61
mov ecx, dword [esp + 0x1c]
cmp eax, esi
mov dl, byte [esp + 0x12]
sete al
test al, al
jne 0x7a7f4d
cmp dl, 0x12
je 0x7a7fb8
test ecx, ecx
je 0x7a7d0b
cmp esi, 0x40
jbe 0x7a7c8c
mov ebp, dword [ebp]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
push ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x24], eax
call fcn.0040bb18
push 0
push 1
sub esp, 0x10
mov ecx, dword [eax + esi*8 + 0x14]
mov ebp, dword [eax + esi*8 + 0x10]
mov esi, esp
mov eax, dword [esp + 0x80]
mov dword [esp + 0x34], ecx
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
cmp eax, 0x40
ja 0x7a7cea
dec eax
mov ecx, 0x3f
and eax, 0x3f
or edx, 0xffffffff
sub ecx, eax
or eax, 0xffffffff
call fcn.00403bcf
and eax, ebp
and edx, dword [esp + 0x34]
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x7a7cf5
push 0
push ecx
push ebp
mov ecx, esi
call fcn.004148fd
lea ecx, [esp + 0x40]
call fcn.007a7950
test al, al
je 0x7a7fb8
jmp 0x7a7f4d
cmp byte [esp + 0x11], 0
je 0x7a7d1e
test ebx, ebx
je 0x7a7d1e
mov eax, ebx
mov dword [esp + 0x1c], ebx
jmp 0x7a7d2b
push dword [edi]
mov ecx, ebx
call fcn.0040e809
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x64]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00408742
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add eax, 7
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x68]
adc esi, 0
shrd eax, esi, 3
mov dword [esp + 0x18], eax
shr esi, 3
call fcn.0040a9c0
mov ecx, dword [esp + 0x14]
add ecx, eax
push 0
adc esi, 0
add ecx, 0xffffffff
push eax
adc esi, 0xffffffff
mov dword [esp + 0x1c], ecx
push esi
push ecx
call fcn.0040da03
sub dword [esp + 0x14], eax
sbb esi, edx
cmp byte [esp + 0x48], 0
mov dword [esp + 0x1c], esi
je 0x7a7dcc
call fcn.0040762b
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
sub ecx, edx
cmp ecx, 0x6e
jae 0x7a7db0
push 0x6e
push str.Compiler_has_made_implicit_assumption_that_TypeSize_is_not_scalable._This_may_or_may_not_lead_to_broken_code._n
mov ecx, eax
call fcn.0041214d
jmp 0x7a7dcc
mov ecx, 0x1b
mov esi, str.Compiler_has_made_implicit_assumption_that_TypeSize_is_not_scalable._This_may_or_may_not_lead_to_broken_code._n
mov edi, edx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
add dword [eax + 0xc], 0x6e
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
push esi
push dword [esp + 0x18]
sub esp, 0x10
mov edx, esp
mov dword [edx + 8], eax
cmp eax, 0x40
ja 0x7a7df1
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x7a7cf5
push ebp
mov ecx, edx
call fcn.00406ffa
jmp 0x7a7cf5
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x7a7fb8
test ecx, ecx
jne 0x7a7fb8
cmp byte [esp + 0x12], 0x12
je 0x7a7fb8
lea ecx, [esp + 0x30]
mov dword [esp + 0x38], 1
push ecx
push eax
push dword [esp + 0x78]
xorps xmm0, xmm0
movlpd qword [esp + 0x3c], xmm0
call edx
add esp, 0xc
test al, al
je 0x7a7fa5
cmp byte [esp + 0x11], 0
mov byte [esp + 0x13], 1
je 0x7a7e5d
test ebx, ebx
je 0x7a7e5d
mov eax, ebx
mov dword [esp + 0x1c], ebx
jmp 0x7a7e6a
push dword [edi]
mov ecx, ebx
call fcn.0040e809
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x64]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.00408742
mov esi, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
add esi, 7
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x68]
adc ebp, 0
shrd esi, ebp, 3
shr ebp, 3
call fcn.0040a9c0
add esi, eax
push 0
adc ebp, 0
add esi, 0xffffffff
push eax
adc ebp, 0xffffffff
push ebp
push esi
call fcn.0040da03
sub esi, eax
mov dword [esp + 0x1c], esi
sbb ebp, edx
cmp byte [esp + 0x58], 0
je 0x7a7efd
call fcn.0040762b
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
sub ecx, edx
cmp ecx, 0x6e
jae 0x7a7ee1
push 0x6e
push str.Compiler_has_made_implicit_assumption_that_TypeSize_is_not_scalable._This_may_or_may_not_lead_to_broken_code._n
mov ecx, eax
call fcn.0041214d
jmp 0x7a7efd
mov ecx, 0x1b
mov esi, str.Compiler_has_made_implicit_assumption_that_TypeSize_is_not_scalable._This_may_or_may_not_lead_to_broken_code._n
mov edi, edx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
add dword [eax + 0xc], 0x6e
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
push ebp
push esi
sub esp, 0x10
mov edx, esp
mov dword [edx + 8], eax
cmp dword [esp + 0x50], 0x40
ja 0x7a7f21
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x7a7f2d
lea eax, [esp + 0x48]
mov ecx, edx
push eax
call fcn.00406ffa
lea ecx, [esp + 0x40]
call fcn.007a7950
test al, al
je 0x7a7fa5
cmp dword [esp + 0x38], 0x40
jbe 0x7a7f4d
push dword [esp + 0x30]
call fcn.0040dae4
add esp, 4
cmp byte [esp + 0x11], 0
je 0x7a7f58
test ebx, ebx
jne 0x7a7f63
push dword [edi]
mov ecx, ebx
call fcn.0040e809
mov ebx, eax
mov cl, byte [ebx + 4]
cmp cl, 0x10
je 0x7a7f82
cmp cl, 0x11
je 0x7a7f82
cmp cl, 0x12
je 0x7a7f82
xor eax, eax
cmp cl, 0xf
cmove eax, ebx
and eax, 0xfffffffd
jmp 0x7a7f88
mov eax, dword [ebx + 0x10]
or eax, 2
add edi, 0x10
mov dword [esp + 0x18], edi
cmp edi, dword [esp + 0x24]
jne 0x7a7be7
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 0x10
cmp dword [esp + 0x38], 0x40
jbe 0x7a7fb8
push dword [esp + 0x30]
call fcn.0040dae4
add esp, 4
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x50
ret 0x10