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

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
mov ebx, edx
mov esi, ebx
sub esp, 0xac
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x60], eax
lea eax, [ecx + 0x28]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xc8]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x46241a
mov eax, dword [esp + 0xc8]
call fcn.00460d20
mov ebx, edx
mov ecx, edx
or ebx, eax
je 0x46241a
mov ebx, dword [esp + 0xd4]
mov edx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xd0]
mov dword [esp], ebx
call fcn.00460830
test eax, eax
mov ebp, eax
je 0x462270
mov eax, dword [eax + 8]
cmp eax, 0x2e
sete cl
cmp eax, 3
sete dl
or cl, dl
jne 0x4621c0
cmp eax, 0x1d
je 0x4621c0
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x34], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x44], 0
test eax, eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
je 0x461e84
lea eax, [esp + 0x80]
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], eax
jmp 0x461dd2
mov edx, dword [esp + 0x34]
test edx, edx
je 0x461dc0
add ebx, dword [ebp + 0x14]
mov eax, dword [ebx]
cmp eax, 0x47
je 0x4620f9
jbe 0x462030
cmp eax, 0x59
je 0x462164
ja 0x4620c0
cmp eax, 0x55
je 0x462185
cmp eax, 0x58
jne 0x461dc0
cmp dword [esp + 0x80], 1
je 0x462380
mov esi, esi
lea edi, [edi]
add dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
cmp dword [ebp + 0x10], eax
jbe 0x461e84
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 0x10]
lea ebx, [eax*8]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + ebx + 4]
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0x2c]
mov dword [esp + 0xc], edx
mov edx, dword [esi + 0x28]
mov dword [esp + 8], edx
mov edx, dword [edi + 0x14]
mov dword [esp + 4], edx
mov edx, dword [edi + 0xc]
mov dword [esp], edx
mov edx, dword [esp + 0xc8]
call fcn.00460f20
test eax, eax
je 0x462270
cmp dword [ebp + 8], 0x11
jne 0x461d70
mov eax, dword [ebp + 0x14]
cmp dword [eax + ebx], 0x11
jne 0x461d70
mov ebx, dword [esp + 0x80]
test ebx, ebx
jne 0x461dc0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
test ecx, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
je 0x461dc0
add dword [esp + 0x28], 1
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
cmp dword [ebp + 0x10], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], 1
ja 0x461dd2
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4622af
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
test eax, eax
je 0x46227d
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x46223b
mov ebx, dword [esp + 0x58]
test dword [esp + 0x44], ebx
je 0x46227d
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x4623e0
mov eax, dword [esp + 0x68]
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
call fcn.00460980
test eax, eax
je 0x462270
lea eax, [esp + 0x80]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x461c71
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x64]
mov ecx, edi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], edx
mov edx, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
call fcn.00461c40
test eax, eax
je 0x462270
mov ebp, dword [esp + 0x8c]
test ebp, ebp
je 0x461c71
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.0045ed00
test eax, eax
je 0x462270
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc], 0x460ac0
mov dword [esp + 8], 0x18
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00464530
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x8c]
mov dword [ecx + 0xc], ebx
mov dword [ecx + 0x10], eax
jmp 0x461c71
cmp eax, 0x11
je 0x462355
jbe 0x462080
cmp eax, 0x12
jne 0x4620f0
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x462325
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x44], eax
jmp 0x461dc0
cmp eax, 3
jne 0x461dc0
cmp dword [esp + 0x80], 3
jne 0x461dc0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
test eax, eax
jne 0x461dc0
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x40]
mov dword [ecx], eax
jmp 0x461dc0
cmp eax, 0x6e
je 0x4620d0
cmp eax, 0x2007
jne 0x461dc0
cmp dword [esp + 0x80], 3
jne 0x461dc0
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x40]
mov dword [ebx], eax
jmp 0x461dc0
cmp eax, 0x31
jne 0x461dc0
mov eax, dword [ebx + 4]
sub eax, 0x10
and eax, 0xffffffef
je 0x461dc0
mov eax, dword [esp + 0x80]
cmp eax, 1
je 0x46211d
cmp eax, 4
jne 0x461dc0
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 4], edx
mov edx, edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov eax, esi
call fcn.00461350
test eax, eax
je 0x461dc0
mov ecx, dword [esp + 0x40]
mov dword [ecx], eax
jmp 0x461dc0
cmp dword [esp + 0x80], 1
jne 0x461dc0
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x40]
mov dword [ecx + 8], eax
jmp 0x461dc0
mov eax, dword [esp + 0x80]
cmp eax, 1
je 0x46219a
cmp eax, 6
jne 0x461dc0
mov eax, dword [esp + 0x88]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
jmp 0x461dc0
cmp eax, 0x1d
mov eax, dword [esp + 0xd8]
cmove eax, dword [esp + 0xdc]
mov dword [esp + 4], 0x14
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.0045ec00
test eax, eax
mov dword [esp + 0x40], eax
je 0x462270
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], 1
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
jmp 0x461d00
cmp dword [esp + 0x70], 0
mov edx, dword [esi + 0x24]
jbe 0x462424
mov eax, dword [esp + 0xd4]
mov dword [esp + 8], 0
mov dword [esp + 4], str.function_ranges_offset_out_of_range
mov dword [esp], eax
call dword [esp + 0xd0]
lea esi, [esi]
xor eax, eax
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xd4]
mov dword [esp + 8], 0x14
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.0045ec50
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x461c71
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0x64]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], edx
mov edx, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
call fcn.00461c40
test eax, eax
jne 0x461c71
jmp 0x462270
cmp eax, 1
jne 0x461dc0
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x44], eax
jmp 0x461dc0
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x461dc0
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
jmp 0x461e62
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
mov edx, ebx
or edx, ecx
jne 0x4623a4
mov eax, dword [esp + 0x40]
mov dword [eax + 4], 0x5aa4f6
jmp 0x461dc0
mov eax, ecx
mov edx, ebx
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
mov eax, dword [eax + 0x24]
jbe 0x4623f5
mov eax, dword [esp + 0xc8]
mov edx, str.invalid_file_number_in_DW_AT_call_file_attribute
call fcn.00460b70
jmp 0x462270
mov eax, dword [esp + 0x50]
add dword [esp + 0x38], eax
mov edx, dword [esp + 0x54]
adc dword [esp + 0x3c], edx
jmp 0x461ec4
cmp dword [esp + 0x78], eax
jae 0x4623c7
mov eax, dword [esp + 0xcc]
add ecx, 0x3fffffff
mov eax, dword [eax + 0x28]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
mov dword [ecx + 4], eax
jmp 0x461dc0
mov eax, 1
jmp 0x462272
cmp dword [esp + 0x6c], edx
jae 0x462249
mov eax, dword [esi + 0x20]
mov ebx, dword [esp + 0x6c]
xor ecx, ecx
mov dword [esp + 0x80], str..debug_ranges
mov dword [esp + 0x9c], 0
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x84], eax
add eax, ebx
sub edx, ebx
mov dword [esp + 0x88], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], eax
test ecx, ecx
jne 0x462270
mov edx, dword [edi + 0x14]
lea eax, [esp + 0x80]
mov dword [esp + 0x30], eax
call fcn.00460dd0
mov esi, edx
mov edx, dword [edi + 0x14]
mov ebx, eax
lea eax, [esp + 0x80]
mov ebp, esi
call fcn.00460dd0
mov ecx, ebx
or ebp, edx
or ecx, eax
or ebp, ecx
je 0x462560
mov ecx, dword [edi + 0x14]
cmp ecx, 2
je 0x462540
jle 0x462523
cmp ecx, 4
je 0x462552
cmp ecx, 8
jne 0x462580
mov ecx, ebx
and ecx, esi
cmp ecx, 0xffffffff
sete cl
movzx ecx, cl
test ecx, ecx
je 0x462580
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
test ecx, ecx
je 0x4624ac
jmp 0x462270
cmp ecx, 1
jne 0x462580
mov ebp, ebx
xor ebp, 0xff
or ebp, esi
sete cl
movzx ecx, cl
jmp 0x462507
mov ebp, ebx
xor ebp, 0xffff
or ebp, esi
sete cl
movzx ecx, cl
jmp 0x462507
mov ecx, ebx
not ecx
or ecx, esi
sete cl
movzx ecx, cl
jmp 0x462507
mov eax, dword [esp + 0x9c]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
test eax, eax
je 0x461f24
jmp 0x462270
add eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
adc edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x68]
mov ecx, dword [ecx + 4]
mov dword [esp + 8], eax
mov eax, ebx
add eax, dword [esp + 0x28]
mov dword [esp + 0x18], ebp
mov dword [esp + 0xc], edx
mov edx, esi
mov ebp, dword [esp + 0xd4]
adc edx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0xd0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], ebp
call fcn.00460980
test eax, eax
je 0x462270
mov ecx, dword [esp + 0x9c]
jmp 0x4624a4