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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x9c
mov dword [esp + 8], 0x318
mov dword [esp + 4], 0x403fdd
mov dword [esp], 0x40205b
call sym._updatecontext_f
mov dword [esp], 0x432f38
call sym._irlist_size
test eax, eax
jne 0x40431c
mov dword [esp], 0x432f44
call sym._irlist_size
test eax, eax
je 0x404ecd
mov dword [esp + 0xc], 0x320
mov dword [esp + 8], 0x40205b
mov dword [esp + 4], 0x403fdd
mov dword [esp], 0x3c
call sym._mycalloc2
mov dword [ebp - 0x1c], eax
mov dword [esp + 0xc], 0x321
mov dword [esp + 8], 0x40205b
mov dword [esp + 4], 0x403fdd
mov dword [esp], 0x3c
call sym._mycalloc2
mov dword [ebp - 0x20], eax
mov dword [esp + 0xc], 0x322
mov dword [esp + 8], 0x40205b
mov dword [esp + 4], 0x403fdd
mov dword [esp], 0x3c
call sym._mycalloc2
mov dword [ebp - 0x24], eax
mov dword [esp], 0x432f38
call sym._irlist_size
test eax, eax
jne 0x404e60
mov dword [esp], 0x432f38
call sym._irlist_get_head
test eax, eax
mov edi, eax
je 0x40472f
nop
lea esi, [esi]
mov eax, dword [edi + 0x9c]
mov ebx, 0x403b67
cmp eax, 2
je 0x4043e8
cmp eax, 2
ja 0x404e45
mov ebx, 0x403b6f
cmp eax, 1
je 0x4043e8
mov ebx, 0x403b79
cmp eax, 2
je 0x404df0
mov eax, dword [edi + 0x78]
mov eax, dword [eax]
mov dword [esp], eax
call sym._getfilename
mov dword [esp + 0x10], eax
mov edx, dword [ebp + 8]
mov dword [esp + 0x14], ebx
mov eax, dword [edi + 0x8c]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 4], 0x403fe4
mov dword [esp], edx
mov dword [esp + 8], eax
call sym._u_respond
mov eax, dword [edi + 0x9c]
sub eax, 2
cmp eax, 1
ja 0x404dd4
fld dword [edi + 0x74]
mov ecx, dword [edi + 0x78]
mov ebx, dword [edi + 0x10]
fld qword [0x4042c0]
fxch st(1)
mov eax, dword [ecx + 0x18]
fst dword [ebp - 0x30]
mov edx, dword [ecx + 0x1c]
mov dword [ebp - 0x34], ecx
mov esi, dword [edi + 0x14]
mov dword [ebp - 0x58], eax
sub dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], edx
fucom st(1)
fnstsw ax
fstp st(1)
sbb dword [ebp - 0x54], esi
sahf
jbe 0x404db4
fnstcw word [ebp - 0x12]
mov ecx, dword [ebp - 0x54]
movzx eax, word [ebp - 0x12]
fmul dword [0x4042c8]
mov dword [esp + 4], ecx
or ax, 0xc00
mov word [ebp - 0x14], ax
fldcw word [ebp - 0x14]
fistp dword [ebp - 0x44]
fldcw word [ebp - 0x12]
mov eax, dword [ebp - 0x44]
cdq
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x58]
mov dword [esp + 8], eax
mov dword [esp], edx
call sym.___divdi3
test edx, edx
js 0x404d40
test edx, edx
jle 0x404d2a
mov ebx, 0x57e3f
mov esi, dword [0x4314b4]
mov eax, dword [edi + 0x5c]
sub esi, eax
cmp esi, 0x57e3f
jle 0x4044de
mov esi, 0x57e3f
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1c]
fld dword [edx + 0x10]
mov dword [esp + 8], 0x403ffb
mov dword [esp + 4], 0x3b
fstp qword [esp + 0xc]
mov dword [esp], ecx
call sym._snprintf
mov eax, dword [edi + 0x30]
test eax, eax
js 0x404d20
mov dword [esp + 8], 0x404002
sar eax, 0xa
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x20]
mov dword [esp + 4], 0x3b
mov dword [esp], eax
call sym._snprintf
mov eax, dword [edi + 0x78]
mov edx, dword [ebp - 0x24]
fld dword [eax + 0x14]
mov dword [esp], edx
mov dword [esp + 8], 0x403ffb
fstp qword [esp + 0xc]
mov dword [esp + 4], 0x3b
call sym._snprintf
mov ecx, dword [ebp - 0x20]
mov edx, dword [edi + 0x34]
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x48], ecx
mov ecx, edx
or ecx, eax
jne 0x40456e
mov dword [ebp - 0x48], 0x404008
mov eax, dword [ebp - 0x48]
mov dword [esp + 0x48], eax
cmp byte [edi + 0x99], 0
jne 0x404592
mov eax, dword [edi + 0x78]
fldz
mov edx, dword [ebp - 0x24]
fld dword [eax + 0x14]
fucompp
fnstsw ax
sahf
jne 0x404597
jp 0x404597
mov edx, 0x404008
mov dword [esp + 0x44], edx
cmp byte [edi + 0x98], 0
jne 0x4045b8
mov eax, dword [edi + 0x78]
fldz
mov edx, dword [ebp - 0x1c]
fld dword [eax + 0x10]
fucompp
fnstsw ax
sahf
jne 0x4045bd
jp 0x4045bd
mov edx, 0x404008
mov dword [esp + 0x40], edx
xor eax, eax
cmp ebx, 0xe0f
setle al
dec eax
and eax, 0xfffffffa
add eax, 0x73
cmp ebx, 0xe0f
mov dword [esp + 0x3c], eax
jg 0x404ce3
mov eax, 0x88888889
imul ebx
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
mov eax, ebx
lea edx, [ecx + ebx]
sar eax, 0x1f
sar edx, 5
sub edx, eax
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
mov edx, ebx
sub edx, eax
xor eax, eax
cmp ebx, 0xe0f
setle al
cmp ebx, 0xe0f
mov dword [esp + 0x38], edx
lea eax, [eax + eax*4 + 0x68]
mov dword [esp + 0x34], eax
jg 0x404cd0
mov eax, 0x88888889
imul ebx
add edx, ebx
sar edx, 5
mov eax, ebx
sar eax, 0x1f
sub edx, eax
mov dword [esp + 0x30], edx
xor eax, eax
cmp esi, 0xe0f
setle al
dec eax
and eax, 0xfffffffa
add eax, 0x73
cmp esi, 0xe0f
mov dword [esp + 0x2c], eax
jg 0x404c93
mov eax, 0x88888889
imul esi
mov eax, esi
sar eax, 0x1f
lea edx, [edx + esi]
sar edx, 5
sub edx, eax
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
mov edx, esi
sub edx, eax
xor eax, eax
cmp esi, 0xe0f
setle al
cmp esi, 0xe0f
mov dword [esp + 0x28], edx
lea eax, [eax + eax*4 + 0x68]
mov dword [esp + 0x24], eax
jg 0x404c80
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 5
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [edi + 0x78]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
test edx, edx
js 0x404c70
shrd eax, edx, 0xa
sar edx, 0xa
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
test edx, edx
js 0x404c62
shrd eax, edx, 0xa
sar edx, 0xa
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x10], eax
fld dword [edi + 0x74]
mov dword [esp + 4], 0x404010
mov dword [esp], edx
fstp qword [esp + 8]
call sym._u_respond
mov dword [esp], edi
call sym._irlist_get_next
test eax, eax
mov edi, eax
jne 0x4043c0
mov dword [esp], 0x432f44
call sym._irlist_size
test eax, eax
jne 0x404bfb
mov dword [ebp - 0x28], 0
mov dword [esp], 0x432f44
call sym._irlist_get_head
test eax, eax
mov edi, eax
je 0x4049df
mov eax, dword [edi + 0x4c]
mov ebx, 0x403b9b
cmp eax, 2
je 0x404785
cmp eax, 2
ja 0x404be0
mov ebx, 0x403ba3
cmp eax, 1
je 0x404785
mov ebx, 0x403b79
cmp eax, 2
je 0x404b90
mov eax, dword [edi + 0x48]
mov dword [esp], eax
call sym._getfilename
mov dword [esp + 0x10], eax
mov ecx, dword [ebp - 0x28]
mov dword [esp + 0x14], ebx
mov eax, dword [edi + 0x40]
mov dword [esp + 4], 0x404056
mov ebx, dword [ebp + 8]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call sym._u_respond
mov eax, dword [edi + 0x4c]
sub eax, 2
cmp eax, 1
ja 0x404b75
fld dword [edi + 0x3c]
mov eax, dword [edi + 0x10]
mov ebx, dword [edi + 8]
fld qword [0x4042c0]
fxch st(1)
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x40], eax
mov esi, dword [edi + 0xc]
sub eax, ebx
fst dword [ebp - 0x2c]
mov dword [ebp - 0x58], eax
fucom st(1)
fnstsw ax
fstp st(1)
mov dword [ebp - 0x3c], edx
sbb edx, esi
sahf
mov dword [ebp - 0x54], edx
jbe 0x404b55
fnstcw word [ebp - 0x12]
mov ecx, dword [ebp - 0x54]
movzx eax, word [ebp - 0x12]
fmul dword [0x4042c8]
mov dword [esp + 4], ecx
or ax, 0xc00
mov word [ebp - 0x14], ax
fldcw word [ebp - 0x14]
fistp dword [ebp - 0x50]
fldcw word [ebp - 0x12]
mov eax, dword [ebp - 0x50]
cdq
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x58]
mov dword [esp + 8], eax
mov dword [esp], edx
call sym.___divdi3
test edx, edx
js 0x404af0
test edx, edx
jle 0x404adb
mov ebx, 0x57e3f
mov esi, dword [0x4314b4]
mov eax, dword [edi + 0x2c]
sub esi, eax
cmp esi, 0x57e3f
jle 0x404871
mov esi, 0x57e3f
xor eax, eax
cmp ebx, 0xe0f
setle al
dec eax
and eax, 0xfffffffa
add eax, 0x73
cmp ebx, 0xe0f
mov dword [esp + 0x3c], eax
jg 0x404aa3
mov eax, 0x88888889
imul ebx
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
mov eax, ebx
lea edx, [ecx + ebx]
sar eax, 0x1f
sar edx, 5
sub edx, eax
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
mov edx, ebx
sub edx, eax
xor eax, eax
cmp ebx, 0xe0f
setle al
cmp ebx, 0xe0f
mov dword [esp + 0x38], edx
lea eax, [eax + eax*4 + 0x68]
mov dword [esp + 0x34], eax
jg 0x404a90
mov eax, 0x88888889
imul ebx
add edx, ebx
sar edx, 5
mov eax, ebx
sar eax, 0x1f
sub edx, eax
mov dword [esp + 0x30], edx
xor eax, eax
cmp esi, 0xe0f
setle al
dec eax
and eax, 0xfffffffa
add eax, 0x73
cmp esi, 0xe0f
mov dword [esp + 0x2c], eax
jg 0x404a53
mov eax, 0x88888889
imul esi
mov eax, esi
sar eax, 0x1f
lea edx, [edx + esi]
sar edx, 5
sub edx, eax
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
mov edx, esi
sub edx, eax
xor eax, eax
cmp esi, 0xe0f
setle al
cmp esi, 0xe0f
mov dword [esp + 0x28], edx
lea eax, [eax + eax*4 + 0x68]
mov dword [esp + 0x24], eax
jg 0x404a40
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 5
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
test edx, edx
js 0x404a30
shrd eax, edx, 0xa
sar edx, 0xa
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 8]
test edx, edx
js 0x404a20
shrd eax, edx, 0xa
sar edx, 0xa
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x10], eax
fld dword [edi + 0x3c]
mov dword [esp + 4], 0x404070
mov dword [esp], edx
fstp qword [esp + 8]
call sym._u_respond
mov dword [esp], edi
call sym._irlist_get_next
inc dword [ebp - 0x28]
mov edi, eax
test eax, eax
jne 0x404760
mov dword [esp + 4], 0x4040b0
mov ebx, dword [ebp + 8]
mov dword [esp], ebx
call sym._u_respond
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._mydelete2
mov edx, dword [ebp - 0x20]
mov dword [esp], edx
call sym._mydelete2
mov ecx, dword [ebp - 0x24]
mov dword [esp], ecx
call sym._mydelete2
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
add eax, 0x3ff
adc edx, 0
jmp 0x4049a1
add eax, 0x3ff
adc edx, 0
jmp 0x404984
mov edx, 0x91a2b3c5
mov eax, esi
imul edx
add edx, esi
sar edx, 0xb
jmp 0x40496b
mov eax, 0x88888889
imul esi
mov eax, esi
sar eax, 0x1f
lea ecx, [esi + edx]
sar ecx, 5
sub ecx, eax
mov eax, 0x88888889
imul ecx
mov eax, ecx
sar eax, 0x1f
add edx, ecx
sar edx, 5
sub edx, eax
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
mov edx, ecx
jmp 0x40493a
mov edx, 0x91a2b3c5
mov eax, ebx
imul edx
add edx, ebx
sar edx, 0xb
jmp 0x4048ed
mov eax, 0x88888889
imul ebx
mov eax, ebx
sar eax, 0x1f
lea ecx, [ebx + edx]
sar ecx, 5
sub ecx, eax
mov eax, 0x88888889
imul ecx
mov eax, ecx
sar eax, 0x1f
add edx, ecx
sar edx, 5
sub edx, eax
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
mov edx, ecx
jmp 0x4048bc
cmp eax, 0x57e3f
ja 0x404854
lea esi, [esi]
lea edi, [edi]
fld dword [ebp - 0x2c]
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
fld qword [0x4042c0]
fxch st(1)
sub edx, ebx
sbb ecx, esi
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0x404b51
fnstcw word [ebp - 0x12]
movzx eax, word [ebp - 0x12]
fmul dword [0x4042c8]
mov dword [esp], edx
mov dword [esp + 4], ecx
or ax, 0xc00
mov word [ebp - 0x14], ax
fldcw word [ebp - 0x14]
fistp dword [ebp - 0x18]
fldcw word [ebp - 0x12]
mov eax, dword [ebp - 0x18]
mov ebx, eax
mov dword [esp + 8], eax
sar ebx, 0x1f
mov dword [esp + 0xc], ebx
call sym.___divdi3
mov edx, eax
mov ebx, edx
jmp 0x404859
fstp st(0)
jmp 0x404b4a
fstp st(0)
mov eax, dword [ebp - 0x54]
test eax, eax
js 0x404af0
mov eax, dword [ebp - 0x54]
test eax, eax
jg 0x404854
cmp dword [ebp - 0x58], 0x57e3f
jmp 0x404ae0
mov dword [esp + 4], 0x404110
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
call sym._u_respond
jmp 0x4049ca
mov eax, dword [edi + 0x48]
mov dword [esp], eax
call sym._getfilename
fild qword [edi + 8]
mov edx, dword [ebp + 8]
fild qword [edi + 0x10]
fxch st(1)
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
fmul dword [0x4042b8]
fdivrp st(1)
fstp qword [esp + 0x18]
mov eax, dword [edi + 0x40]
mov dword [esp + 4], 0x404170
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], eax
call sym._u_respond
jmp 0x4047c2
cmp eax, 3
mov ebx, 0x403bf2
je 0x404785
mov ebx, 0x403bfc
cmp eax, 4
jmp 0x40477e
mov dword [esp], 0x432f44
call sym._irlist_size
dec eax
mov edx, 0x40306f
je 0x404c5b
mov dword [esp + 8], edx
mov ebx, dword [ebp + 8]
mov dword [esp + 4], 0x403c01
mov dword [esp], ebx
call sym._u_respond
mov dword [esp + 4], 0x404190
mov dword [esp], ebx
call sym._u_respond
mov dword [esp + 4], 0x4041d0
mov dword [esp], ebx
call sym._u_respond
mov dword [esp + 4], 0x404210
mov dword [esp], ebx
call sym._u_respond
jmp 0x404743
mov edx, 0x403002
jmp 0x404c0f
add eax, 0x3ff
adc edx, 0
jmp 0x4046f4
add eax, 0x3ff
adc edx, 0
jmp 0x4046d7
mov edx, 0x91a2b3c5
mov eax, esi
imul edx
add edx, esi
sar edx, 0xb
jmp 0x4046bb
mov eax, 0x88888889
imul esi
mov eax, esi
sar eax, 0x1f
lea ecx, [esi + edx]
sar ecx, 5
sub ecx, eax
mov eax, 0x88888889
imul ecx
mov eax, ecx
sar eax, 0x1f
add edx, ecx
sar edx, 5
sub edx, eax
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
mov edx, ecx
jmp 0x40468a
mov edx, 0x91a2b3c5
mov eax, ebx
imul edx
add edx, ebx
sar edx, 0xb
jmp 0x40463d
mov eax, 0x88888889
imul ebx
mov eax, ebx
sar eax, 0x1f
lea ecx, [ebx + edx]
sar ecx, 5
sub ecx, eax
mov eax, 0x88888889
imul ecx
mov eax, ecx
sar eax, 0x1f
add edx, ecx
sar edx, 5
sub edx, eax
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
mov edx, ecx
jmp 0x40460c
add eax, 0x3ff
jmp 0x40450e
cmp eax, 0x57e3f
ja 0x4044c1
lea esi, [esi]
lea edi, [edi]
fld dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
fld qword [0x4042c0]
fxch st(1)
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
fucom st(1)
fnstsw ax
fstp st(1)
sub edx, ebx
sbb ecx, esi
sahf
jbe 0x404db0
fnstcw word [ebp - 0x12]
movzx eax, word [ebp - 0x12]
fmul dword [0x4042c8]
mov dword [esp], edx
mov dword [esp + 4], ecx
or ax, 0xc00
mov word [ebp - 0x14], ax
fldcw word [ebp - 0x14]
fistp dword [ebp - 0x18]
fldcw word [ebp - 0x12]
mov eax, dword [ebp - 0x18]
mov ebx, eax
mov dword [esp + 8], eax
sar ebx, 0x1f
mov dword [esp + 0xc], ebx
call sym.___divdi3
mov edx, eax
mov eax, dword [edi + 0x78]
mov dword [ebp - 0x34], eax
mov ebx, edx
jmp 0x4044c6
fstp st(0)
jmp 0x404da3
fstp st(0)
mov eax, dword [ebp - 0x54]
test eax, eax
js 0x404d40
mov eax, dword [ebp - 0x54]
test eax, eax
jg 0x4044c1
cmp dword [ebp - 0x58], 0x57e3f
jmp 0x404d2f
mov dword [esp + 4], 0x404110
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
call sym._u_respond
jmp 0x40471d
mov eax, dword [edi + 0x78]
mov eax, dword [eax]
mov dword [esp], eax
call sym._getfilename
fild qword [edi + 0x10]
mov edx, dword [edi + 0x78]
fild qword [edx + 0x18]
fxch st(1)
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
fmul dword [0x4042b8]
fdivrp st(1)
fstp qword [esp + 0x18]
mov eax, dword [edi + 0x8c]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 4], 0x404250
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._u_respond
jmp 0x40442a
cmp eax, 3
mov ebx, 0x403bf2
je 0x4043e8
mov ebx, 0x403c91
cmp eax, 4
jmp 0x4043e1
mov dword [esp], 0x432f38
call sym._irlist_size
dec eax
mov edx, 0x40306f
je 0x404ec6
mov dword [esp + 8], edx
mov edx, dword [ebp + 8]
mov dword [esp + 4], 0x403c99
mov dword [esp], edx
call sym._u_respond
mov dword [esp + 4], 0x404190
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
call sym._u_respond
mov dword [esp + 4], 0x404270
mov ebx, dword [ebp + 8]
mov dword [esp], ebx
call sym._u_respond
mov dword [esp + 4], 0x4040b0
mov dword [esp], ebx
call sym._u_respond
jmp 0x4043a5
mov edx, 0x403002
jmp 0x404e74
mov dword [esp + 4], 0x403cac
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._u_respond
jmp 0x404a13