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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4bbea8
mov eax, dword fs:[0]
push eax
sub esp, 0x80
push ebx
push esi
push edi
mov eax, dword [0x4ce028]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov cl, byte [edi + 0x98]
lea eax, [edi + 0x38]
not cl
and cl, 1
mov dword [esp + 0x20], eax
jne 0x40f10b
mov ecx, dword [eax + 0x60]
mov edx, ecx
shr edx, 1
test dl, 1
jne 0x40f10b
and ecx, 0x18
cmp cl, 0x18
je 0x40f10b
mov eax, dword [eax + 0x60]
mov ecx, eax
shr ecx, 4
test cl, 1
je 0x40f101
shr eax, 3
test al, 1
je 0x40f10b
xor esi, esi
cmp dword [edi + 0x118], esi
je 0x40f125
xor al, al
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [edi + 0x10c]
cmp ecx, esi
jne 0x40f135
mov dword [esp + 0x18], esi
jmp 0x40f142
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
xor ebx, ebx
or edx, ebx
je 0x40fadd
lea eax, [esp + 0x54]
push eax
call fcn.0040cc30
mov dword [esp + 0x98], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
cmp ebx, esi
jb 0x40f2f6
ja 0x40f185
cmp dword [esp + 0x18], esi
jbe 0x40f2f6
mov ecx, dword [esp + 0x34]
push esi
push ecx
mov eax, edi
call fcn.0040e1d0
mov ebx, eax
mov edx, dword [ebx + 0x88]
shr edx, 5
test dl, 1
je 0x40f2c1
lea eax, [edi + 0xf0]
push eax
mov eax, dword [esp + 0x38]
push ecx
push esi
push eax
mov eax, edi
call fcn.0040e1d0
add esp, 4
push eax
call fcn.0040b5f0
cmp dword [ebx + 0x90], 0
lea edi, [ebx + 0x8c]
je 0x40f1d9
cmp dword [edi + 8], 0
ja 0x40f1e0
mov esi, ebx
call fcn.0040b900
cmp dword [ebx + 0xa0], 0
lea eax, [ebx + 0x9c]
je 0x40f1f5
cmp dword [eax + 8], 0
ja 0x40f1fd
push eax
mov ecx, ebx
call fcn.0040ba60
mov ecx, dword [ebx + 0x80]
lea esi, [ebx + 0x48]
mov dword [esp + 0x30], ecx
call fcn.004142f0
mov ecx, ebx
mov esi, eax
call fcn.0040a560
push 1
mov edi, ebx
lea esi, [esi + eax + 0x1e]
call fcn.0040be00
add esi, eax
movzx eax, byte [ebx + 0x7e]
cmp eax, 1
je 0x40f23a
cmp eax, 2
je 0x40f23a
cmp eax, 3
jne 0x40f23d
add esi, 0xb
mov ecx, dword [esp + 0x30]
sub esi, ecx
mov eax, esi
mov esi, dword [esp + 0x3c]
cdq
add esi, eax
mov eax, dword [esp + 0x40]
adc eax, edx
xor edx, edx
add ecx, dword [ebx + 0x40]
mov ebx, dword [ebx + 0x44]
adc ebx, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x40], eax
xor ebx, ebx
mov dword [esp + 0x88], eax
lea eax, [esp + 0x6c]
lea edi, [esp + 0x54]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], esi
call fcn.004101b0
mov ecx, dword [esp + 0x64]
mov eax, ecx
sub eax, dword [esp + 0x60]
sar eax, 5
cmp eax, ebx
jne 0x40f2c7
push 0xe2
xor ecx, ecx
call fcn.0040a140
mov ecx, dword [esp + 0x64]
jmp 0x40f2ce
mov esi, dword [esp + 0x38]
mov edi, dword [ebp + 8]
add dword [esp + 0x34], 1
adc esi, 0
xor eax, eax
mov dword [esp + 0x38], esi
cmp esi, eax
jb 0x40f185
ja 0x40f2fa
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x34], eax
jb 0x40f185
jmp 0x40f2fa
mov ecx, dword [esp + 0x64]
sub ecx, dword [esp + 0x60]
sar ecx, 5
mov ebx, ecx
mov dword [esp + 0x30], ebx
test ebx, ebx
jne 0x40f325
lea ecx, [esp + 0x54]
push ecx
mov dword [esp + 0x9c], 0xffffffff
call fcn.0040fd20
jmp 0x40fadd
mov edx, dword [edi + 0x114]
cmp byte [edx + 0x34], 0
je 0x40f35f
mov eax, dword [edi + 0x104]
mov ebx, dword [eax + 0x48]
mov ecx, dword [eax + 8]
add ebx, dword [edx + 0x28]
mov eax, dword [eax + 0x4c]
adc eax, dword [edx + 0x2c]
mov esi, dword [ecx]
mov edx, dword [esi + 0x18]
push eax
push ebx
call edx
mov eax, dword [edi + 0x114]
mov ebx, dword [esp + 0x30]
mov byte [eax + 0x34], 0
jmp 0x40f36a
mov esi, dword [edi + 0x104]
call fcn.004136c0
mov ecx, dword [edi + 0x40]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
dec ebx
xor esi, esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x24], esi
nop
cmp esi, dword [esp + 0x30]
jne 0x40f3b4
mov ebx, dword [esp + 0x3c]
sub ebx, dword [edi + 0x80]
mov edi, dword [esp + 0x40]
mov ecx, dword [ebp + 8]
sbb edi, dword [ecx + 0x84]
mov byte [esp + 0x16], 1
jmp 0x40f3da
lea ebx, [esi + 1]
lea edi, [esp + 0x54]
call fcn.00410140
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
mov eax, dword [ebp + 8]
call fcn.0040e1d0
mov ebx, dword [eax + 0x40]
mov edi, dword [eax + 0x44]
mov byte [esp + 0x16], 0
mov ecx, dword [esp + 0x64]
sub ecx, dword [esp + 0x60]
sar ecx, 5
cmp esi, ecx
jb 0x40f3ef
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x24]
add eax, edx
mov dword [eax + 0x10], ebx
sub ebx, dword [eax + 8]
mov dword [eax + 0x14], edi
sbb edi, dword [eax + 0xc]
add dword [esp + 0x34], ebx
adc dword [esp + 0x38], edi
cmp byte [esp + 0x16], 0
jne 0x40f422
mov edi, dword [ebp + 8]
inc esi
add dword [esp + 0x24], 0x20
jmp 0x40f390
mov ebx, dword [esp + 0x30]
lea edi, [esp + 0x54]
mov dword [esp + 0x18], ebx
call fcn.00410140
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
test eax, eax
jl 0x40f462
jg 0x40f44b
test edx, edx
jbe 0x40f462
add edx, dword [esp + 0x3c]
mov ecx, dword [ebp + 8]
adc eax, dword [esp + 0x40]
mov ecx, dword [ecx + 0x40]
mov esi, dword [ecx]
push eax
push edx
mov edx, dword [esi + 0x18]
call edx
mov esi, dword [ebp + 8]
call fcn.0040dce0
lea eax, [esp + 0x2c]
push eax
xor edi, edi
push 0x200
lea eax, [esi + 0xc]
mov dword [esp + 0x34], edi
call fcn.0040fd90
test eax, eax
je 0x40f4b1
mov edi, dword [esp + 0x2c]
lea ebx, [esp + 0x6c]
mov dword [edi + 0x4c], 0x200
mov dword [esp + 0x24], edi
call fcn.0040ed80
mov byte [esp + 0x98], 1
cmp dword [eax + 0x18], 8
jb 0x40f4b7
mov eax, dword [eax + 4]
jmp 0x40f4ba
mov dword [esp + 0x24], edi
jmp 0x40f4f0
add eax, 4
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0xc]
push 0
mov ecx, edi
call eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0x98], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [edi]
mov edx, dword [edx + 0x10]
push eax
push ecx
mov ecx, edi
call edx
jmp 0x40f4f0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x18]
sub ecx, eax
sar ecx, 5
cmp ebx, ecx
jb 0x40f50f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x60]
mov ecx, ebx
shl ecx, 5
mov edx, dword [eax + ecx + 0x1c]
mov edi, dword [eax + ecx + 0x18]
test edx, edx
jl 0x40f55e
jg 0x40f526
test edi, edi
jbe 0x40f55e
cmp dword [esp + 0x18], 0
sete byte [esp + 0x1c]
mov ebx, dword [esp + 0x1c]
push ebx
mov ebx, dword [esp + 0x28]
push 1
push ebx
push edx
mov edx, dword [eax + ecx + 0x14]
push edi
push edx
mov edx, dword [eax + ecx + 0x10]
push edx
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [eax + ecx + 8]
push edx
push eax
mov ebx, esi
call fcn.0040fb00
jmp 0x40f6b7
mov dword [esp + 0x34], ebx
test ebx, ebx
jbe 0x40f628
dec ebx
add ecx, 0xffffffe0
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x64]
mov edx, ecx
sub edx, eax
sar edx, 5
cmp edx, dword [esp + 0x2c]
jbe 0x40f6c7
mov ebx, eax
cmp eax, ecx
jbe 0x40f59b
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x54]
mov esi, edi
mov dword [esp + 0x50], ebx
test edi, edi
jne 0x40f5c8
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x60]
xor ecx, ecx
mov edx, dword [esp + 0x28]
add ebx, edx
cmp ebx, dword [ecx + 0x10]
ja 0x40f5d3
test edi, edi
je 0x40f5cc
mov edi, dword [edi]
jmp 0x40f5ce
mov ecx, dword [edi]
jmp 0x40f5b5
xor edi, edi
cmp ebx, dword [edi + 0xc]
jae 0x40f5dd
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x60]
test esi, esi
jne 0x40f669
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x60]
xor ecx, ecx
cmp ebx, dword [ecx + 0x10]
jb 0x40f600
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x60]
cmp dword [ebx + 0x1c], 0
jg 0x40f628
jl 0x40f60e
cmp dword [ebx + 0x18], 0
ja 0x40f628
mov ecx, dword [esp + 0x18]
sub dword [esp + 0x28], 0x20
dec dword [esp + 0x2c]
dec ecx
mov dword [esp + 0x18], ecx
test ecx, ecx
ja 0x40f576
mov esi, dword [esp + 0x18]
test esi, esi
sete byte [esp + 0x1c]
mov edi, esi
shl esi, 5
mov ecx, dword [esp + 0x64]
sub ecx, eax
sar ecx, 5
cmp edi, ecx
jb 0x40f64f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x60]
cmp edi, dword [esp + 0x34]
sete cl
cmp byte [esp + 0x1c], 0
mov byte [esp + 0x16], cl
je 0x40f66d
test cl, cl
je 0x40f66d
mov cl, 1
jmp 0x40f66f
mov ecx, dword [esi]
jmp 0x40f5f1
xor cl, cl
mov edx, dword [esi + eax + 0x18]
push ecx
mov ecx, dword [esp + 0x28]
mov ebx, dword [ebp + 8]
push 0
push ecx
mov ecx, dword [esi + eax + 0x1c]
neg edx
adc ecx, 0
neg ecx
push ecx
mov ecx, dword [esi + eax + 0x10]
push edx
mov edx, dword [esi + eax + 0x14]
push edx
mov edx, dword [esi + eax + 0xc]
mov eax, dword [esi + eax + 8]
push ecx
push edx
push eax
call fcn.0040fb00
cmp byte [esp + 0x16], 0
jne 0x40f6b5
mov eax, dword [esp + 0x60]
inc edi
add esi, 0x20
jmp 0x40f638
mov esi, ebx
cmp byte [esp + 0x1c], 0
jne 0x40f6cc
dec dword [esp + 0x18]
jmp 0x40f4f0
call fcn.0040d040
mov eax, dword [esi + 0x180]
xor edi, edi
cmp eax, edi
je 0x40f6ed
push eax
call sub.mfc90u.dll_delete
add esp, 4
mov dword [esi + 0x184], edi
mov dword [esi + 0x180], edi
mov edx, dword [esp + 0x48]
cmp edx, edi
jg 0x40f713
mov eax, dword [esp + 0x44]
jl 0x40f6ff
cmp eax, edi
jae 0x40f713
add eax, dword [esp + 0x3c]
mov ecx, dword [esi + 0x40]
adc edx, dword [esp + 0x40]
mov esi, dword [ecx]
push edx
mov edx, dword [esi + 0x18]
push eax
call edx
xor eax, eax
mov dword [esp + 0x18], eax
lea esp, [esp]
cmp eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x64]
sete byte [esp + 0x16]
sub ecx, dword [esp + 0x60]
sar ecx, 5
cmp eax, ecx
jb 0x40f73e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov al, byte [edx + 0x60]
shl edi, 5
add edi, dword [esp + 0x60]
not al
and al, 1
mov ebx, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x28], edi
je 0x40f769
mov dword [esp + 0x1c], 0
jmp 0x40f7b3
mov edx, dword [ebp + 8]
mov esi, dword [edx + 0x10c]
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
xor edx, edx
sar eax, 2
cmp ecx, edx
ja 0x40f790
jb 0x40f787
cmp ebx, eax
jae 0x40f790
mov eax, ebx
and eax, ecx
cmp eax, 0xffffffff
jne 0x40f796
mov dword [esp + 0x1c], edx
jmp 0x40f7b3
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
sar ecx, 2
cmp ebx, ecx
jb 0x40f7a9
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esi + 0xc]
mov eax, dword [edx + ebx*4]
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x16], 0
je 0x40f7c7
mov eax, dword [ebp + 8]
call fcn.00403010
jmp 0x40f854
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x18]
mov edx, ecx
sub edx, eax
inc esi
sar edx, 5
cmp edx, esi
jbe 0x40f6c7
mov dword [esp + 0x2c], eax
cmp eax, ecx
jbe 0x40f7f1
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], eax
test ebx, ebx
jne 0x40f823
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x2c]
shl esi, 5
add esi, ecx
cmp esi, dword [eax + 0x10]
ja 0x40f82e
test ebx, ebx
je 0x40f827
mov ebx, dword [ebx]
jmp 0x40f829
mov eax, dword [ebx]
jmp 0x40f80d
xor ebx, ebx
cmp esi, dword [ebx + 0xc]
jae 0x40f834
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x40f891
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x40f84f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ebx, dword [edi]
mov esi, dword [edi + 4]
add ebx, 1
adc esi, 0
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
cmp esi, edx
ja 0x40f8fd
jb 0x40f880
cmp ebx, eax
jae 0x40f8fd
lea esp, [esp]
mov edx, dword [esp + 0x20]
mov al, byte [edx + 0x60]
not al
and al, 1
je 0x40f895
xor eax, eax
jmp 0x40f8dd
mov eax, dword [eax]
jmp 0x40f844
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 0x10c]
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 0xc]
xor ecx, ecx
sar eax, 2
cmp esi, ecx
ja 0x40f8bc
jb 0x40f8b3
cmp ebx, eax
jae 0x40f8bc
mov edx, ebx
and edx, esi
cmp edx, 0xffffffff
jne 0x40f8c0
xor eax, eax
jmp 0x40f8d9
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 0xc]
sar eax, 2
cmp ebx, eax
jb 0x40f8d3
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + ebx*4]
mov edi, dword [esp + 0x28]
mov edx, dword [edi + 0x18]
add dword [eax + 0x40], edx
mov ecx, dword [edi + 0x1c]
adc dword [eax + 0x44], ecx
add ebx, 1
adc esi, 0
cmp esi, dword [esp + 0x40]
jb 0x40f880
ja 0x40f8fd
cmp ebx, dword [esp + 0x3c]
jb 0x40f880
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x60]
test ecx, ecx
jne 0x40f910
xor edx, edx
jmp 0x40f992
lea esi, [ecx - 1]
mov ecx, dword [esp + 0x64]
mov edx, ecx
sub edx, eax
sar edx, 5
cmp edx, esi
jbe 0x40f6c7
mov ebx, eax
cmp eax, ecx
jbe 0x40f932
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], ebx
test edi, edi
jne 0x40f95c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
shl esi, 5
add esi, ebx
cmp esi, dword [eax + 0x10]
ja 0x40f967
test edi, edi
je 0x40f960
mov edi, dword [edi]
jmp 0x40f962
mov eax, dword [edi]
jmp 0x40f94a
xor edi, edi
cmp esi, dword [edi + 0xc]
jae 0x40f96d
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x40fa6b
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x40f98c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0x40]
mov esi, dword [eax + 0x44]
mov eax, dword [esp + 0x20]
add edi, ecx
adc esi, edx
cmp dword [eax + 0x40], 0
jne 0x40f9bc
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x48]
test ecx, ecx
ja 0x40f9b8
test edx, edx
jbe 0x40f9bc
add edi, edx
adc esi, ecx
mov ebx, dword [eax + 8]
cmp esi, 0x7fffffff
jb 0x40fa72
ja 0x40f9d6
cmp edi, 0xffffffff
jbe 0x40fa72
mov eax, dword [ebx]
mov edx, dword [eax + 0x14]
mov ecx, ebx
call edx
sub eax, edi
sbb edx, esi
mov esi, dword [ebx]
neg eax
mov edi, 0
adc edx, edi
push 2
neg edx
push edx
push eax
mov eax, dword [esi + 0x10]
mov ecx, ebx
call eax
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
push esi
push ebx
call fcn.0040bb40
and dword [ebx + 0x88], 0xffffffdf
mov eax, dword [esi + 0x18]
cmp eax, edi
je 0x40fa3d
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 8]
mov ebx, dword [ecx]
push eax
push edx
mov edx, dword [ebx + 0x30]
call edx
mov eax, dword [esi + 0x60]
shr eax, 4
test al, 1
je 0x40fa3a
mov ecx, dword [esi + 0x18]
add dword [esi + 0x38], ecx
adc dword [esi + 0x3c], edi
mov dword [esi + 0x18], edi
mov edx, dword [esi + 0x60]
and edx, 0x90
cmp dl, 0x90
jne 0x40fa57
push esi
call fcn.00413220
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
cmp byte [esp + 0x16], 0
jne 0x40fa86
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
jmp 0x40f720
mov eax, dword [eax]
jmp 0x40f981
mov eax, dword [ebx]
mov edx, dword [eax + 0x10]
push 0
push esi
push edi
mov ecx, ebx
call edx
xor edi, edi
jmp 0x40f9fb
mov ecx, dword [ebp + 8]
call fcn.0040f000
mov ecx, dword [esp + 0x24]
cmp ecx, edi
je 0x40fa9d
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
mov dword [esp + 0x98], 2
mov eax, dword [esp + 0x60]
cmp eax, edi
je 0x40fab9
push eax
call sub.mfc90u.dll_delete
add esp, 4
mov dword [esp + 0x98], 0xffffffff
mov eax, dword [esp + 0x54]
push eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
call sub.mfc90u.dll_delete
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4