Function at 0x4096a0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
push ebx
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
push esi
push edi
mov edi, eax
mov eax, dword [edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx]
mov esi, dword [eax]
push esi
call fcn.004111c1
add esp, 4
mov dword [esp + 0x34], eax
inc eax
je 0x42978a
add eax, 7
shr eax, 3
add eax, eax
add eax, eax
add eax, eax
xor ecx, ecx
mov dword [esp + 0x38], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004115d7
mov ecx, dword [esp + 0x38]
add esp, 4
lea edx, [ecx + ecx + 2]
push edx
push esi
push eax
mov dword [esp + 0x3c], eax
call fcn.00410e60
add esp, 0xc
push 4
call fcn.004115d7
add esp, 4
test eax, eax
je 0x429794
mov dword [eax], 1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x140], 0
mov dword [esp + 0x3c], eax
je 0x42986a
cmp dword [eax], 1
jg 0x42979b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
call dword [0x482644]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x13c]
test esi, esi
jne 0x429802
mov esi, dword [eax + 0x134]
test esi, esi
je 0x42986a
mov dword [esp + 0x1c], esi
lea esp, [esp]
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x34]
jne 0x40a675
test edx, edx
je 0x4097b9
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
jmp 0x4097a0
mov si, word [eax]
cmp si, word [ecx]
jne 0x40a671
add eax, 2
add ecx, 2
dec edx
jne 0x4097a0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
dec dword [eax]
jne 0x4097db
mov ecx, dword [esp + 0x30]
push ecx
call fcn.004111dc
mov edx, dword [esp + 0x40]
add esp, 4
push edx
call fcn.004111dc
add esp, 4
mov eax, esi
test eax, eax
je 0x429873
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
mov dword [esp + 0x44], ecx
mov dword [esp + 0xcc], edx
mov edx, dword [ebx + 4]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x148]
inc eax
mov dword [edi], eax
mov esi, dword [ebx + 4]
mov dword [esp + 0xdc], ecx
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], ecx
mov esi, dword [esi + eax*4]
cmp word [esi + 8], 0x47
mov dword [esp + 0x30], 0x488088
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x60], 0x48b874
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
jne 0x4297f6
inc eax
mov dword [esp + 0x7c], edx
mov edx, eax
mov dword [esp + 0x18], ecx
xor esi, esi
mov dword [esp + 0x54], edx
mov dword [edi], eax
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + eax*4]
movsx ecx, word [ecx + 8]
cmp ecx, 0x47
jge 0x40988c
inc eax
jmp 0x409878
sub ecx, 0x47
je 0x4298cf
dec ecx
jne 0x4298a6
test esi, esi
jne 0x4298c8
mov dword [esp + 0x14], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0xcc]
cmp eax, dword [0x4a90f8]
jg 0x4298d5
cmp eax, ecx
jle 0x4298d5
shl eax, 4
add eax, dword [0x4a912c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x5c], ecx
jle 0x409aa2
mov dword [esp + 0x10], 3
mov dword [esp + 0x78], ecx
lea ecx, [ecx]
cmp edx, dword [esp + 0x14]
jae 0x409aa2
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x70]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor edi, edi
xor bl, bl
cmp word [ecx + 8], di
je 0x4298de
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x40992e
xor bl, bl
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
cmp esi, eax
je 0x40a689
push 1
call fcn.004115d7
add esp, 4
test eax, eax
je 0x429916
mov byte [eax], bl
mov edx, dword [esp + 0x64]
mov dword [edx + esi*4], eax
inc esi
mov dword [esp + 0x68], esi
test bl, bl
jne 0x42991d
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x429a27
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x429a3a
cmp eax, 0xa
je 0x429a5f
cmp eax, 5
je 0x429a76
cmp eax, 0xb
je 0x429a84
cmp eax, 0xc
je 0x429aa6
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 0
cmp esi, eax
je 0x40a6e6
mov edi, dword [esp + 0x34]
push 0x10
call fcn.004115d7
add esp, 4
test eax, eax
je 0x429c8c
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x429abd
mov edx, dword [esp + 0x20]
mov dword [ebx], edx
mov eax, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
mov dword [edi + esi*4], eax
inc esi
push ebx
mov dword [esp + 0x3c], esi
mov esi, dword [edi + esi*4 - 4]
push esi
lea eax, [esp + 0x5c]
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040a780
test eax, eax
jne 0x42ae89
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + eax*4 + 4]
inc eax
cmp word [edx + 8], 0x41
mov dword [esp + 0x10], eax
je 0x429c93
mov edx, dword [esp + 0x54]
cmp edx, ebx
je 0x409aa2
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov eax, dword [eax + edx*4]
mov ecx, 0x40
cmp word [eax + 8], cx
jne 0x429ce2
lea eax, [edx + 1]
cmp eax, dword [esp + 0x14]
je 0x429ce2
mov esi, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
cmp word [eax + 8], cx
jne 0x409a8f
inc dword [esp + 0x10]
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jl 0x4098f0
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x44]
jl 0x42ae79
cmp eax, dword [esp + 0x5c]
jg 0x42ae79
cmp edx, dword [esp + 0x14]
jne 0x42ae79
mov ebx, dword [esp + 0xcc]
xor esi, esi
xor eax, eax
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
cmp ebx, esi
jl 0x429cf4
cmp byte [0x4a7f3d], al
jne 0x429cfd
push 0xc
call fcn.004115d7
add esp, 4
cmp eax, esi
je 0x429da0
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0x4c]
mov dword [edi + 4], edx
cmp dword [esp + 0x4c], esi
jl 0x429d1e
mov eax, dword [esp + 0x48]
cmp eax, esi
jne 0x429d26
mov dword [edi], esi
mov ecx, dword [0x4a7f38]
mov dword [edi + 8], ecx
mov dword [0x4a7f38], edi
mov eax, dword [esp + 0x48]
inc dword [0x4a7f34]
cmp eax, esi
jne 0x429da7
mov eax, 1
cmp dword [esp + 0x5c], eax
jl 0x409fd9
mov dword [esp + 0x78], eax
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x409780
jmp 0x42986a
add eax, eax
cmp eax, 4
jae 0x40a695
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004115d7
mov edx, dword [esp + 0x68]
add esp, 4
lea ecx, [esi*4]
push ecx
push edx
push eax
mov dword [esp + 0x54], eax
call fcn.00410e60
mov eax, dword [esp + 0x70]
add esp, 0xc
push eax
call fcn.004111dc
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [esp + 0x64], ecx
jmp 0x40993e
add eax, eax
cmp eax, 4
jae 0x40a6f2
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004115d7
mov ebx, dword [esp + 0x38]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.00410e60
add esp, 0xc
push ebx
call fcn.004111dc
add esp, 4
mov dword [esp + 0x34], edi
jmp 0x4099c3
inc ebp
sbb al, 0x59
pop ecx
mov dword [esi + 0x54], edi
test eax, eax
jne 0x429798
add ecx, dword [ebp - 0xafefbb]
jne 0x4297b4
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 0x18]
sbb byte [esi + 0x68], dl
sbb bh, byte [0x75ff0041]
or al, 0xff
jne 0x4297b0
push esi
push 0x413d1a
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [0x482300]
test eax, eax
jne 0x4297ce
call dword [0x482308]
mov ebx, eax
or byte [ebx], ah
dec eax
add byte [ebx + 0x3ce856d8], cl
stc
invalid
push esi
call fcn.004290fc
pop ecx
test ebx, ebx
je 0x4297cc
push ebx
call fcn.0042d951
pop ecx
xor eax, eax
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
pop ebp
ret
movzx edx, word [eax]
push ebx
push esi
push edi
test dx, dx
je 0x429837
mov ebx, dword [ebp + 0xc]
movzx edi, word [ebx]
mov esi, ebx
test di, di
je 0x42982c
mov ecx, edi
cmp cx, dx
je 0x429839
add esi, 2
movzx ecx, word [esi]
test cx, cx
jne 0x42981c
add eax, 2
movzx edx, word [eax]
test dx, dx
jne 0x429813
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret
pop ebp
ret
cmpsb byte [esi], byte es:[edi]
cmp eax, dword [eax]
add byte [ebx + 0x4589084d], cl
cld
test ecx, ecx
jne 0x429884
mov ecx, dword [eax + 0x1c]
movzx edx, word [ecx]
push esi
push edi
test dx, dx
je 0x4298bf
mov eax, dword [ebp + 0xc]
movzx eax, word [eax]
mov edi, dword [ebp + 0xc]
test ax, ax
je 0x4298ae
mov esi, eax
cmp si, dx
je 0x4298ae
add edi, 2
movzx esi, word [edi]
test si, si
jne 0x42989e
cmp word [edi], 0
je 0x4298bf
add ecx, 2
movzx edx, word [ecx]
test dx, dx
jne 0x429894
cmp word [ecx], 0
mov dword [ebp + 8], ecx
je 0x429904
mov eax, dword [ebp + 0xc]
movzx eax, word [eax]
mov esi, dword [ebp + 0xc]
jne 0x4298dd
test ax, ax
je 0x4298eb
adc eax, 0x8b39b70f
shl byte [esi + 0x3b], 1
movzx edi, word [ecx]
mov edx, eax
cmp dx, di
xlatb
je 0x4298eb
add esi, 2
movzx edx, word [esi]
test dx, dx
jne 0x4298db
cmp word [esi], 0
jne 0x4298fc
add ecx, 2
cmp word [ecx], 0
jne 0x4298ce
jmp 0x429904
xor eax, eax
mov word [ecx], ax
add ecx, 2
mov eax, dword [ebp - 4]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp + 8]
sub eax, ecx
neg eax
sbb eax, eax
and eax, dword [ebp + 8]
pop edi
pop esi
leave
ret
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov eax, esi
sar eax, 5
lea edx, [eax*4 + 0x4a9620]
mov ecx, dword [edx]
and esi, 0x1f
shl esi, 6
add ecx, esi
mov al, byte [ecx + 0x24]
add al, al
push edi
movzx edi, byte [ecx + 4]
movsx eax, al
and edi, 0x80
sar eax, 1
cmp ebx, 0x4000
je 0x4299aa
cmp ebx, 0x8000
je 0x4299a4
cmp ebx, 0x10000
je 0x429990
cmp ebx, 0x20000
je 0x429990
cmp ebx, 0x40000
jne 0x4299b7
or byte [ecx + 4], 0x80
mov ecx, dword [edx]
lea ecx, [ecx + esi + 0x24]
mov dl, byte [ecx]
and dl, 0x81
or dl, 1
mov byte [ecx], dl
jmp 0x4299b7
or byte [ecx + 4], 0x80
mov ecx, dword [edx]
lea ecx, [ecx + esi + 0x24]
mov dl, byte [ecx]
and dl, 0x82
or dl, 2
jmp 0x42998c
and byte [ecx + 4], 0x7f
jmp 0x4299b7
or byte [ecx + 4], 0x80
mov ecx, dword [edx]
lea ecx, [ecx + esi + 0x24]
and byte [ecx], 0x80
test edi, edi
pop edi
pop esi
pop ebx
jne 0x4299c5
mov eax, 0x8000
pop ebp
ret
neg eax
sbb eax, eax
and eax, 0xc000
add eax, 0x4000
pop ebp
ret
add byte [eax], al
add al, 0
je 0x429a4c
cmp eax, 0x20000
je 0x429a4c
call fcn.0042d92b
mov dword [eax], 0x16
add byte [esi], dl
add byte [eax], al
add al, ch
xchg ebp, eax
add byte ds:[eax], al
call fcn.0042d8d9
or eax, 0xffffffff
jmp 0x429adc
mov ebx, dword [ebp + 8]
cmp ebx, 0xfffffffe
jne 0x429a61
call fcn.0042d92b
mov dword [eax], 9
jmp 0x429a44
test ebx, ebx
js 0x429a6d
cmp ebx, dword [0x4a9610]
jb 0x429a7a
call fcn.0042d92b
mov dword [eax], 9
add byte [eax], al
jmp 0x429a3f
mov eax, ebx
sar eax, 5
lea edi, [eax*4 + 0x4a9620]
mov esi, ebx
and esi, 0x1f
dec edx
add byte [ebx + 0x1fe683f3], cl
shl esi, 6
mov eax, dword [edi]
movsx eax, byte [eax + esi + 4]
and eax, 1
je 0x429a6d
push ebx
call fcn.0043080a
pop ecx
and dword [ebp - 4], 0
mov eax, dword [edi]
pop es
test byte [eax + esi + 4], 1
je 0x429abe
push dword [ebp + 0xc]
push ebx
call fcn.0042991a
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jmp 0x429acd
psubsb mm5, qword [eax + 0x3e]
add byte [eax], al
call fcn.0042d92b
mov dword [eax], 9
or dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 4], 0xfffffffe
call fcn.00429ae5
mov eax, dword [ebp - 0x1c]
call fcn.0042c669
ret
jne 0x429ca6
call fcn.0042d92b
mov dword [eax], 0x16
call fcn.0042d8d9
xor eax, eax
call fcn.0042c669
ret
push dword [ebp + 0x14]
call fcn.0042ae25
pop ecx
mov dword [ebp - 4], esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00429b13
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xfffffffe
call fcn.00429cda
mov eax, dword [ebp - 0x1c]
jmp 0x429ca0
pop ecx
ret
in al, 0x33
ror byte [ebx - 0x4c4f783], 0xf
xchg ebp, eax
sar byte [ebx], 0xc3
jne 0x429d1b
call fcn.0042d92b
mov dword [eax], 0x16
call fcn.0042d8d9
or eax, 0xffffffff
jmp 0x429de0
xor eax, eax
cmp dword [ebp + 0xc], ebx
setne al
cmp eax, ebx
pop ebp
or al, 0xf
xchg ebp, eax
sar byte [ebx], 0xc3
je 0x429d03
fmul qword [ecx - 0x17a8f783]
cmc
adc byte [eax], al
add byte [ecx - 0x77], bl
pop ebp
cld
mov dword [ebp + 8], edi
push edi
call fcn.0042ae25
pop ecx
mov dword [ebp - 4], ebx
test byte [edi + 0xc], 0x40
jne 0x429da9
push edi
call fcn.00429aed
pop ecx
cmp eax, 0xffffffff
je 0x429d61
cmp eax, 0xfffffffe
je 0x429d61
mov edx, eax
sar edx, 5
mov ecx, eax
and ecx, 0x1f
shl ecx, 6
add ecx, dword [edx*4 + 0x4a9620]
jmp 0x429d66
mov ecx, 0x490d50
test byte [ecx + 0x24], 0x7f
jne 0x429d95
cmp eax, 0xffffffff
je 0x429d8a
cmp eax, 0xfffffffe
je 0x429d8a
mov ecx, eax
sar ecx, 5
and eax, 0x1f
shl eax, 6
add eax, dword [ecx*4 + 0x4a9620]
jmp 0x429d8f
mov eax, 0x490d50
test byte [eax + 0x24], 0x80
je 0x429da9
call fcn.0042d92b
mov dword [eax], 0x16
call fcn.0042d8d9
or dword [ebp - 0x1c], 0xffffffff
in al, 0xff
cmp dword [ebp - 0x1c], ebx
jne 0x429dd1
push edi
call fcn.0042f9ca
mov esi, eax
lea eax, [ebp + 0x10]
push eax
push ebx
push dword [ebp + 0xc]
push edi
call fcn.004312cf
mov dword [ebp - 0x1c], eax
push edi
push esi
call fcn.0042fa66
add esp, 0x1c
mov dword [ebp - 4], 0xfffffffe
call fcn.00429de6
mov eax, dword [ebp - 0x1c]
call fcn.0042c669
ret
add byte cs:[eax], al
mov eax, dword [ebp + 0xc]
or dword [eax + 0xc], 0x8000
pop ecx
pop ebp
ret
mov eax, dword [ebp + 0xc]
add eax, 0x20
push eax
call dword [0x482224]
pop ebp
ret