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

Disassembly:
push ebp
push edi
mov ebp, eax
push esi
push ebx
mov ebx, ecx
sub esp, 0xcc
mov esi, dword [edx]
lea ecx, [esp + 0x8c]
mov dword [esp + 0x2c], edx
call fcn.00411750
test eax, eax
mov dword [esp + 0x34], eax
je 0x4aff77
mov eax, dword [esp + 0x8c]
cmp eax, 0x52
je 0x4aee7b
ja 0x4aea87
cmp eax, 0x42
je 0x4aebe0
cmp eax, 0x4d
je 0x4aeb85
jmp 0x4aea95
cmp eax, 0x54
je 0x4aeab6
cmp eax, 0x7a
je 0x4aede8
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.unrecognized_C_misc_record
mov ecx, esi
call fcn.00411310
mov dword [esp + 0x34], 0
jmp 0x4aff77
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x90]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, ebp
call fcn.00411750
test eax, eax
je 0x4aff6f
lea eax, [esp + 0x98]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x94]
mov dword [esp], eax
mov eax, ebp
call fcn.004ae960
test eax, eax
je 0x4aff6f
lea eax, [ebx - 3]
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x220]
mov ebp, ebx
mov dword [esp + 0x3c], eax
mov ebx, eax
test ebx, ebx
je 0x4aeb5e
mov edi, dword [ebx + 4]
mov al, byte [esi]
cmp byte [edi], al
jne 0x4aeb5a
mov dword [esp + 8], ebp
mov dword [esp + 4], esi
mov dword [esp], edi
call sub.msvcrt.dll_strncmp
test eax, eax
mov dword [esp + 0x34], eax
jne 0x4aeb5a
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ebp, ecx
je 0x4af197
mov ebx, dword [ebx]
jmp 0x4aeb25
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.undefined_C_object
call fcn.00411310
mov dword [esp + 0x34], 0
jmp 0x4aff77
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb4]
mov eax, ebp
call fcn.00411750
test eax, eax
je 0x4aff6f
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
cmp eax, dword [ebp + 0xc]
jae 0x4aee6e
cmp byte [eax], 0xf1
jne 0x4aee6e
lea eax, [esp + 0xbc]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb8]
mov dword [esp], eax
mov eax, ebp
call fcn.004ae960
test eax, eax
jne 0x4aee6e
jmp 0x4aff6f
mov eax, dword [esp + 0x2c]
lea edx, [ebp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
cmp eax, edx
jbe 0x4aebfa
cmp dword [eax - 8], 0xffffffff
jne 0x4aec1d
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x28]
lea edx, [ebp + 8]
mov dword [esp], str.C_default_values_not_in_a_function
call fcn.00411310
mov dword [esp + 0x34], 0
jmp 0x4aff77
lea eax, [esp + 0xac]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xa8]
mov dword [esp], eax
mov eax, ebp
call fcn.004ae960
test eax, eax
je 0x4aff6f
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb0]
mov eax, ebp
call fcn.00411750
test eax, eax
je 0x4aff6f
mov esi, dword [esp + 0x2c]
sub ebx, 3
mov eax, dword [esp + 0xb0]
lea edx, [eax - 1]
test eax, eax
mov dword [esp + 0xb0], edx
je 0x4aed16
lea ecx, [esp + 0xb4]
mov edx, esi
mov eax, ebp
call fcn.00411750
test eax, eax
je 0x4aff6f
mov ecx, dword [esp + 0xb4]
cmp ecx, 7
ja 0x4aecf5
mov eax, 1
shl eax, cl
test al, 0x11
jne 0x4aed10
test al, 0x88
jne 0x4aeccb
test al, 6
je 0x4aecf5
lea ecx, [esp + 0xbc]
mov edx, esi
mov eax, ebp
call fcn.00411750
test eax, eax
jne 0x4aeced
jmp 0x4aff6f
lea eax, [esp + 0xbc]
lea ecx, [esp + 0xb8]
mov edx, esi
mov dword [esp], eax
mov eax, ebp
call fcn.004ae960
test eax, eax
je 0x4aff6f
sub ebx, 2
jmp 0x4aec62
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x28]
lea edx, [ebp + 8]
mov dword [esp], str.unrecognized_C_default_type
call fcn.00411310
jmp 0x4aff6f
dec ebx
jmp 0x4aec62
test ebx, ebx
je 0x4aee6e
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp]
mov eax, dword [eax - 8]
shl eax, 4
add eax, dword [ebp + 0x128]
mov esi, dword [eax + 8]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xbc]
mov eax, ebp
call fcn.00411750
test eax, eax
je 0x4aff6f
mov eax, dword [esp + 0xbc]
dec eax
test esi, esi
mov dword [esp + 0xbc], eax
jne 0x4aed7b
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x28]
lea edx, [ebp + 8]
mov dword [esp], str.reference_parameter_is_not_a_pointer
call fcn.00411310
jmp 0x4aff6f
mov eax, dword [esi + eax*4]
test eax, eax
je 0x4aed60
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00409db0
cmp eax, 0xc
jne 0x4aed60
mov eax, dword [esp + 0xbc]
dec ebx
mov eax, dword [esi + eax*4]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00409f20
mov edx, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov dword [esp], edi
lea edx, [esi + edx*4]
mov dword [esp + 0x30], edx
call fcn.00409530
mov edx, dword [esp + 0x30]
mov dword [edx], eax
mov eax, dword [esp + 0xbc]
cmp dword [esi + eax*4], 0
je 0x4aff6f
test ebx, ebx
jne 0x4aed33
jmp 0x4aee6e
lea eax, [esp + 0xb0]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xa4]
mov dword [esp], eax
mov eax, ebp
call fcn.004ae960
test eax, eax
je 0x4aff6f
lea eax, [esp + 0xb4]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xa8]
mov dword [esp], eax
mov eax, ebp
call fcn.004ae960
test eax, eax
je 0x4aff6f
lea eax, [esp + 0xb8]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xac]
mov dword [esp], eax
mov eax, ebp
call fcn.004ae960
test eax, eax
je 0x4aff6f
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xbc]
mov eax, ebp
call fcn.00411750
test eax, eax
je 0x4aff6f
mov dword [esp + 0x34], 1
jmp 0x4aff77
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xac]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, ebp
call fcn.00411750
test eax, eax
je 0x4aff6f
cmp dword [esp + 0xac], 3
je 0x4aeece
lea eax, [esp + 0xbc]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb4]
mov dword [esp], eax
mov eax, ebp
call fcn.004ae960
test eax, eax
jne 0x4aeef3
jmp 0x4aff6f
lea eax, [esp + 0xb8]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb0]
mov dword [esp], eax
mov eax, ebp
call fcn.004ae960
test eax, eax
jne 0x4aeea9
jmp 0x4aff6f
mov eax, dword [esp + 0xac]
cmp eax, 3
mov dword [esp + 0x2c], eax
je 0x4af011
mov eax, dword [esp + 0xbc]
xor edx, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x38], eax
test edx, edx
lea ebx, [ebp + 0x118]
je 0x4aef37
mov ebx, dword [ebp + 0x120]
test ebx, ebx
je 0x4aff59
mov eax, dword [ebx]
lea esi, [eax - 1]
imul eax, esi, 0x14
mov dword [esp + 0x30], eax
test esi, esi
js 0x4af002
mov edi, dword [esp + 0x30]
add edi, dword [ebx + 4]
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x4aeff7
mov eax, dword [esp + 0x34]
cmp dword [edi + 4], eax
jne 0x4aeff7
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
mov edx, dword [esp + 0x3c]
jne 0x4aeff7
cmp dword [esp + 0x2c], 1
mov ecx, dword [esp + 0x40]
je 0x4aefdc
jb 0x4aefc3
cmp dword [esp + 0x2c], 2
je 0x4aefed
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x28]
lea edx, [ebp + 8]
mov eax, dword [ebp + 4]
mov dword [esp], str.unrecognized_C_reference_type
call fcn.00411310
jmp 0x4aff77
mov eax, dword [edi + 0x10]
lea edi, [eax - 1]
cmp edi, 1
jbe 0x4af129
cmp eax, 5
jne 0x4aeff7
jmp 0x4af129
mov eax, dword [edi + 0x10]
sub eax, 3
and eax, 0xfffffffd
je 0x4af129
jmp 0x4aeff7
cmp dword [edi + 0x10], 4
je 0x4af129
dec esi
sub dword [esp + 0x30], 0x14
jmp 0x4aef43
inc edx
cmp edx, 2
je 0x4aff59
jmp 0x4aef1f
mov ebx, dword [ebp + 0x220]
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb8]
test ebx, ebx
je 0x4aff59
mov edi, dword [ebx + 4]
mov al, byte [edx]
cmp byte [edi], al
jne 0x4af122
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 0x2c], edx
call sub.msvcrt.dll_strncmp
test eax, eax
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x2c]
jne 0x4af122
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp esi, ecx
jne 0x4af122
cmp dword [ebx + 0x10], 0
je 0x4aff59
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp]
mov dword [esp], eax
call fcn.00409f60
test eax, eax
mov dword [esp + 0x2c], eax
je 0x4af09a
xor esi, esi
mov dword [esp + 0x30], ebx
jmp 0x4af0f1
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x28]
lea edx, [ebp + 8]
mov dword [esp], str.C_reference_in_class_with_no_fields
call fcn.00411310
jmp 0x4aff77
mov dword [esp + 4], eax
mov eax, dword [ebp]
mov dword [esp], eax
call fcn.00409fc0
test eax, eax
mov edi, eax
je 0x4aff6f
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 0xbc]
mov dword [esp], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncmp
test eax, eax
je 0x4af101
inc esi
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + esi*4]
test eax, eax
jne 0x4af0b5
jmp 0x4aff59
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, ecx
not edi
dec edi
cmp ebx, edi
jne 0x4af0f0
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0x10]
lea ebx, [eax + esi*4]
test ebx, ebx
jne 0x4af12b
jmp 0x4aff59
mov ebx, dword [ebx]
jmp 0x4af025
mov ebx, ecx
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov eax, dword [ebp]
mov dword [esp], eax
call fcn.00409db0
cmp eax, 0xc
je 0x4af164
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x28]
lea edx, [ebp + 8]
mov dword [esp], str.C_reference_is_not_pointer
call fcn.00411310
mov dword [esp + 0x34], 0
jmp 0x4aff77
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov eax, dword [ebp]
mov dword [esp], eax
call fcn.00409f20
mov dword [esp + 4], eax
mov eax, dword [ebp]
mov dword [esp], eax
call fcn.00409530
test eax, eax
mov dword [ebx], eax
setne al
movzx eax, al
mov dword [esp + 0x34], eax
jmp 0x4aff77
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x3c], ebx
mov eax, dword [ebp]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409f60
mov dword [esp + 0x74], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x28], ebp
cmp dword [esp + 0x40], 0
je 0x4afe72
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x9c]
mov ebx, dword [eax]
mov edx, eax
mov eax, dword [esp + 0x28]
call fcn.00411750
test eax, eax
je 0x4aff77
mov eax, dword [esp + 0x9c]
cmp eax, 0x6d
je 0x4af887
ja 0x4af266
cmp eax, 0x62
je 0x4af29e
cmp eax, 0x64
je 0x4af4fe
jmp 0x4af281
cmp eax, 0x76
je 0x4af887
cmp eax, 0x7a
je 0x4afd75
cmp eax, 0x6f
je 0x4afcaf
mov ebp, dword [esp + 0x28]
mov ecx, ebx
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.unrecognized_C_object_spec
call fcn.00411310
jmp 0x4aff77
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xa8]
call fcn.00411750
test eax, eax
je 0x4aff77
lea eax, [esp + 0xb8]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.004ae960
test eax, eax
je 0x4aff77
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xac]
call fcn.00411750
test eax, eax
je 0x4aff77
lea eax, [esp + 0xbc]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.004ae960
test eax, eax
je 0x4aff77
sub dword [esp + 0x40], 5
test byte [esp + 0xa8], 0x10
jne 0x4af219
cmp dword [esp + 0xbc], 0
setne dl
cmp dword [esp + 0xac], 0
sete al
cmp dl, al
je 0x4af36e
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.unsupported_C_object_type
call fcn.00411310
jmp 0x4aff77
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb0]
call fcn.004107a0
mov ebx, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.00409d10
mov dword [esp], ebx
mov esi, eax
call fcn.004abfa8
test esi, esi
jne 0x4af3c8
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.C_base_class_not_defined
call fcn.00411310
jmp 0x4aff77
cmp dword [esp + 0xbc], 0
je 0x4af477
cmp dword [esp + 0x4c], 0
je 0x4af614
mov ebx, dword [esp + 0x4c]
mov eax, dword [ebx]
test eax, eax
je 0x4af43b
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409fc0
test eax, eax
mov edi, eax
je 0x4aff77
mov eax, dword [esp + 0xb4]
mov cl, byte [eax]
cmp byte [edi], cl
jne 0x4af460
mov ebp, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], ebp
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x4af460
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, ecx
not edi
dec edi
cmp ebp, edi
jne 0x4af460
mov eax, dword [ebx]
test eax, eax
jne 0x4af465
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.C_base_class_not_found_in_container
call fcn.00411310
jmp 0x4aff77
add ebx, 4
jmp 0x4af3e5
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409fe0
jmp 0x4af479
xor eax, eax
mov edx, dword [esp + 0xa8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], esi
mov ecx, edx
and edx, 1
shr ecx, 1
neg edx
mov dword [esp], eax
and ecx, 1
and edx, 2
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
call fcn.00409790
test eax, eax
mov esi, eax
je 0x4aff77
mov eax, dword [esp + 0x58]
lea ebx, [eax + 1]
cmp ebx, dword [esp + 0x60]
jb 0x4af4e2
add dword [esp + 0x60], 0xa
mov eax, dword [esp + 0x60]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.004a9270
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x58], ebx
mov dword [eax + edi*4], esi
mov dword [eax + edi*4 + 4], 0
jmp 0x4af219
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xac]
call fcn.00411750
test eax, eax
je 0x4aff77
lea eax, [esp + 0xb8]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.004ae960
test eax, eax
je 0x4aff77
lea eax, [esp + 0xbc]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.004ae960
test eax, eax
je 0x4aff77
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb0]
call fcn.004107a0
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xac]
and eax, 4
mov dword [esp + 0x78], eax
je 0x4af605
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb4]
imul esi, dword [eax + 0x118], 0x14
mov ebx, dword [eax + 0x11c]
add esi, ebx
cmp esi, ebx
jbe 0x4af5dc
cmp dword [ebx + 4], edi
jne 0x4af5cd
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov eax, dword [ebx]
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
je 0x4af5d2
add ebx, 0x14
jmp 0x4af5ae
mov ebp, dword [ebx + 8]
xor ebx, ebx
jmp 0x4af74c
mov eax, dword [esp + 0x28]
xor ebx, ebx
mov ebp, dword [eax + 0x130]
test ebp, ebp
jne 0x4af754
mov edx, dword [esp + 0x38]
mov ecx, 1
call fcn.00416c40
mov ebp, eax
jmp 0x4af74c
cmp dword [esp + 0x4c], 0
je 0x4af614
mov ebx, dword [esp + 0x4c]
xor esi, esi
jmp 0x4af65e
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.C_object_has_no_fields
call fcn.00411310
jmp 0x4aff77
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409fc0
test eax, eax
mov edi, eax
je 0x4aff77
mov eax, dword [esp + 0xb4]
mov cl, byte [eax]
cmp byte [edi], cl
je 0x4af666
add ebx, 4
inc esi
mov eax, dword [ebx]
test eax, eax
jne 0x4af633
jmp 0x4af68f
mov ebp, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], ebp
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x4af65a
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, ecx
not edi
dec edi
cmp ebp, edi
jne 0x4af65a
mov eax, dword [ebx]
test eax, eax
jne 0x4af6b4
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.C_data_member_not_found_in_container
call fcn.00411310
jmp 0x4aff77
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409fa0
mov dword [esp + 4], eax
mov ebp, eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409db0
cmp eax, 0xc
jne 0x4af74c
mov eax, dword [esp + 0x3c]
xor ecx, ecx
cmp dword [eax + 0x10], 0
jne 0x4af716
mov eax, dword [esp + 0x4c]
cmp dword [eax + ecx*4], 0
je 0x4af6f4
inc ecx
jmp 0x4af6e7
shl ecx, 2
mov dword [esp], ecx
mov dword [esp + 0x7c], ecx
call fcn.004a91f0
mov edx, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x7c]
mov edi, edx
mov dword [eax + 0x10], edx
xor eax, eax
rep stosb byte es:[edi], al
test ebp, ebp
je 0x4aff77
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x10]
mov dword [eax + esi*4], ebp
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], 0
mov eax, dword [eax + 0x10]
lea eax, [eax + esi*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409290
mov ebp, eax
test ebp, ebp
je 0x4aff77
mov eax, dword [esp + 0xac]
and eax, 3
cmp eax, 1
je 0x4af775
jb 0x4af77c
cmp eax, 2
jne 0x4afad5
mov esi, 1
jmp 0x4af77e
mov esi, 2
jmp 0x4af77e
xor esi, esi
cmp dword [esp + 0x78], 0
je 0x4af7bc
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb4]
call fcn.004107a0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], esi
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409830
mov ebx, eax
jmp 0x4af831
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409fe0
mov edi, eax
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.0040a010
cmp edi, 0xffffffff
je 0x4af7ec
cmp eax, 0xffffffff
jne 0x4af80b
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.bad_C_field_bit_pos_or_size
call fcn.00411310
jmp 0x4aff77
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.004097c0
mov ebx, eax
test ebx, ebx
je 0x4aff77
mov eax, dword [esp + 0x5c]
lea esi, [eax + 1]
cmp esi, dword [esp + 0x64]
jb 0x4af866
add dword [esp + 0x64], 0xa
mov eax, dword [esp + 0x64]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.004a9270
mov dword [esp + 0x54], eax
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
sub dword [esp + 0x40], 4
mov dword [esp + 0x5c], esi
mov dword [eax + edi*4], ebx
mov dword [eax + edi*4 + 4], 0
jmp 0x4af219
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xa0]
call fcn.00411750
test eax, eax
je 0x4aff77
lea eax, [esp + 0xb4]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.004ae960
test eax, eax
je 0x4aff77
lea eax, [esp + 0xb8]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.004ae960
test eax, eax
je 0x4aff77
cmp dword [esp + 0x9c], 0x76
mov eax, dword [esp + 0x40]
lea ebx, [eax - 4]
je 0x4af90d
mov dword [esp + 0xa4], 0
jmp 0x4af930
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xa4]
call fcn.00411750
test eax, eax
je 0x4aff77
mov ebx, dword [esp + 0x40]
sub ebx, 5
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xa8]
call fcn.00411750
test eax, eax
je 0x4aff77
test byte [esp + 0xa0], 0x10
lea eax, [ebx - 1]
mov dword [esp + 0x40], eax
jne 0x4af219
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0xb8]
mov ebp, dword [esp + 0xb0]
imul esi, dword [eax + 0x118], 0x14
mov ebx, dword [eax + 0x11c]
add esi, ebx
cmp esi, ebx
jbe 0x4af9a6
cmp dword [ebx + 4], edi
jne 0x4af9a1
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov eax, dword [ebx]
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
je 0x4af9ed
add ebx, 0x14
jmp 0x4af982
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x130]
test eax, eax
jne 0x4af9c6
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov ecx, 1
call fcn.00416c40
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.004094d0
mov esi, eax
jmp 0x4afab5
mov eax, dword [ebx + 8]
mov dword [esp + 0xbc], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409db0
cmp eax, 0xd
je 0x4afa2f
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.bad_type_for_C_method_function
call fcn.00411310
jmp 0x4aff77
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409e70
mov esi, eax
lea eax, [esp + 0xbc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409eb0
test esi, esi
je 0x4afa6a
test eax, eax
jne 0x4afa89
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.no_type_information_for_C_method_function
call fcn.00411310
jmp 0x4aff77
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 8]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.004096d0
mov esi, eax
test esi, esi
je 0x4aff77
mov ebx, dword [esp + 0xa0]
mov eax, ebx
and eax, 3
cmp eax, 1
je 0x4afaf4
jb 0x4afb02
cmp eax, 2
je 0x4afafb
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.unknown_C_visibility
call fcn.00411310
jmp 0x4aff77
mov edi, 2
jmp 0x4afb04
mov edi, 1
jmp 0x4afb04
xor edi, edi
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb0]
mov ebp, ebx
shr ebp, 5
shr ebx, 6
and ebp, 1
and ebx, 1
call fcn.004107a0
test byte [esp + 0xa0], 4
je 0x4afb7c
cmp dword [esp + 0x9c], 0x76
jne 0x4afb58
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.C_static_virtual_method
call fcn.00411310
jmp 0x4aff77
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], edi
mov dword [esp], eax
call fcn.00409940
mov esi, eax
jmp 0x4afbc0
xor edx, edx
cmp dword [esp + 0x9c], 0x76
jne 0x4afb8f
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 8]
mov dword [esp + 0x1c], edx
mov dword [esp + 4], eax
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x30]
mov dword [esp + 8], esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 0x18], edx
mov dword [esp], eax
call fcn.004098c0
mov esi, eax
test esi, esi
je 0x4aff77
mov ebp, dword [esp + 0xb4]
mov edx, dword [esp + 0xac]
xor edi, edi
mov ebx, dword [esp + 0x48]
cmp edi, dword [esp + 0x44]
je 0x4afc0b
cmp dword [ebx + 4], ebp
jne 0x4afc05
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov dword [esp + 0x70], edx
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
mov edx, dword [esp + 0x70]
je 0x4afc68
add ebx, 0x14
inc edi
jmp 0x4afbdc
mov edi, dword [esp + 0x68]
cmp dword [esp + 0x44], edi
jb 0x4afc33
add dword [esp + 0x68], 0xa
imul eax, dword [esp + 0x68], 0x14
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.004a9270
mov dword [esp + 0x48], eax
imul ebx, dword [esp + 0x44], 0x14
mov eax, dword [esp + 0xac]
inc dword [esp + 0x44]
add ebx, dword [esp + 0x48]
mov dword [ebx], eax
mov eax, dword [esp + 0xb4]
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 4], eax
mov edi, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
lea edx, [edi + 1]
cmp edx, eax
jb 0x4afc90
add eax, 0xa
mov dword [ebx + 0x10], eax
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call fcn.004a9270
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
mov dword [edx + eax*4], esi
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov edx, dword [ebx + 8]
mov dword [edx + eax*4 + 4], 0
jmp 0x4af219
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xb0]
call fcn.00411750
test eax, eax
je 0x4aff77
mov eax, dword [esp + 0xb0]
test al, 4
je 0x4afd22
lea eax, [esp + 0xb8]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.004ae960
test eax, eax
je 0x4aff77
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xbc]
call fcn.00411750
test eax, eax
je 0x4aff77
sub dword [esp + 0x40], 4
jmp 0x4af219
test al, 8
je 0x4afd56
lea eax, [esp + 0xbc]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.004ae960
test eax, eax
je 0x4aff77
sub dword [esp + 0x40], 3
jmp 0x4af219
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.unrecognized_C_object_overhead_spec
call fcn.00411310
jmp 0x4aff77
lea eax, [esp + 0xb0]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.004ae960
test eax, eax
je 0x4aff77
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xb8]
call fcn.00411750
test eax, eax
je 0x4aff77
lea eax, [esp + 0xb4]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.004ae960
test eax, eax
je 0x4aff77
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xbc]
call fcn.00411750
test eax, eax
je 0x4aff77
mov edx, dword [esp + 0xb4]
sub dword [esp + 0x40], 5
test edx, edx
je 0x4afe65
mov eax, dword [esp + 0xac]
call fcn.004107a0
mov ebx, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.00409d10
mov dword [esp], ebx
mov dword [esp + 0x6c], eax
call fcn.004abfa8
cmp dword [esp + 0x6c], 0
jne 0x4af219
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
lea edx, [ebp + 8]
mov dword [esp], str.undefined_C_vtable
call fcn.00411310
jmp 0x4aff77
mov dword [esp + 0x74], 1
jmp 0x4af219
cmp dword [esp + 0x44], 0
je 0x4afee6
mov eax, dword [esp + 0x44]
xor edi, edi
lea eax, [eax*4 + 4]
mov dword [esp], eax
call fcn.004a91f0
mov esi, eax
mov eax, dword [esp + 0x48]
lea ebx, [eax + 4]
mov edx, dword [ebx]
mov eax, dword [ebx - 4]
call fcn.004107a0
mov edx, dword [ebx + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.004098a0
test eax, eax
mov dword [esi + edi*4], eax
je 0x4aff6f
inc edi
add ebx, 0x14
cmp dword [esp + 0x44], edi
jne 0x4afe97
mov eax, dword [esp + 0x44]
mov dword [esi + eax*4], 0
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.004abfa8
jmp 0x4afee8
xor esi, esi
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409e20
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esp + 0x90], 0x75
mov edi, dword [esp + 0x74]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x50]
setne al
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x10], esi
mov dword [esp + 4], eax
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], esi
mov dword [esp], eax
call fcn.004093a0
mov edi, dword [esp + 0x3c]
test eax, eax
mov dword [edi + 0xc], eax
setne al
movzx eax, al
mov dword [esp + 0x34], eax
jmp 0x4aff77
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x28]
lea edx, [ebp + 8]
mov dword [esp], str.C_reference_not_found
call fcn.00411310
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x34]
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret