Function at 0x4bab59
Capabilities:
Read file on windows

Disassembly:
sub cl, 2
ja 0x4b79e7
jbe 0x49b6c9
pop eax
invalid
jbe 0x4b79e7
and eax, 0x24448f09
cld
mov ah, ah
mov word [esi + 0xbc], di
mov di, di
call fcn.004a3411
push edx
pop edx
jne 0x4a1265
lea edx, [edx]
je 0x49b6f6
inc edi
mov al, 0x14
sbb cl, byte [edi]
test byte [ecx + 0x5b], ch
add byte [eax], al
je 0x4a1265
add eax, 0x85e8b76
lea esi, [esi + 0xc]
test byte [ebx], al
jb 0x4b0876
shl ebx, 0x20
jmp dword [esi]
mov al, al
mov al, byte [ebp + 0xb]
mov dl, dl
jmp 0x49bd67
push esi
mov ebx, ebx
mov ax, ax
mov byte [esi + 0xba], bl
mov byte [esi + 0xbb], al
mov ebx, ebx
mov word [esi + 0xbc], di
jne 0x4b4d47
xchg ebx, eax
xchg ebx, eax
je 0x49bd90
cdq
xor dh, byte [esi - 0x704e7bf1]
add dword [eax], eax
je 0x4b4d47
fmul dword [ebx + 0x68085e8b]
push edx
ret 0x4a
mov esi, dword [esi + 4]
mov esi, dword [esi]
jmp dword [esi]
mov ch, ch
jmp 0x49f229
push esi
call dword [sym.imp.kernel32.dll_FreeLibrary]
pop edi
mov eax, ebx
pop esi
pop ebx
ret
ja 0x4a19dd
push esi
jne 0x4bece9
je 0x4a2374
add dword [esp + edx*4 + 0xf], ebp
test byte [edi - 0x37], ch
add dword [eax], eax
je 0x4bece9
xor al, 0xd0
xchg dh, bl
xchg bl, dh
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
shr bx, 0x40
xchg dx, ax
xchg dx, ax
lea esi, [esi + 0xc]
stc
jmp 0x4a3a43
xor byte [edx], 0xe8
and eax, 0xf800019b
xor ecx, ecx
jb 0x4ab30b
mov cx, word [edi + 0x24]
push ecx
push esi
call fcn.0049ce6a
mov bh, bh
mov ebp, ebp
mov dx, word [edi + 0x18]
xchg bp, cx
xchg cx, bp
jmp 0x4a2657
push edx
jno 0x4b73e6
jo 0x4a2663
push ebp
jo 0x4b73e6
fldcw word [edi - 0x77]
test byte [edi], 0x82
adc eax, dword [eax]
add byte [eax], al
jae 0x4a2678
adc eax, 0xf086f080
xchg al, dh
xchg dh, al
lea esi, [esi + 8]
jmp dword [esi]
jmp dword [esi]
jmp 0x49c6d3
sub di, 0
xor word [ebx], ax
jb 0x4b2bd8
jmp dword [esi]
mov cl, byte [esi + 0xbc]
add dl, 0
sub bx, 0
xor eax, eax
jb 0x4b655c
jno 0x49b6bb
xchg di, cx
shl di, 0x20
shr cx, 0x40
mov ecx, ecx
shr di, 0x40
xchg cx, di
jo 0x4a49e3
cdq
sub dword [ebx + esi + 0x6cd2800f], edx
invalid
jo 0x49b6bb
fst dword [edx]
call fcn.004a7e77
jmp 0x4adf7c
popfd
push ebx
pop ebx
mov ebx, 1
jno 0x49f226
jo 0x4a8484
cmpsd dword [esi], dword es:[edi]
pop edx
jo 0x49f226
fcmove st(0), st(1)
test eax, eax
jb 0x4a262c
jne 0x4c1e52
je 0x4a84a0
add edx, dword [ebp + 0x23]
adc eax, 0x562e9ca1
mov eax, dword [0x562e9c]
jmp 0x4a84a6
add bl, ch
push eax
xchg bp, ax
xchg bp, ax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [0x562e9c], ebx
mov ecx, dword [esi]
push 0xb
jmp 0x4acf05
sub esi, dword [ecx - 0x792d769a]
loop 0x4a8472
aam 0xc0
in eax, dx
inc eax
mov eax, dword [esi + 4]
lea esi, [esi + 8]
mov edi, edi
mov eax, dword [eax]
mov dword [ebp + 0x50], esi
js 0x4a034c
jns 0x4a8509
nop
cpuid
ret
jns 0x4a034c
xor eax, 0x24448faa
cld
jb 0x4a3030
jae 0x4a8521
cpuid
ret
lea esi, [esi + 8]
jmp 0x4a302a
mov dword [edi], ebx
jmp dword [esi]
jne 0x4ab283
mov ax, ax
push 0x4b3530
ret
jns 0x4ab356
cwde
je 0x4af4d8
add dword [eax], eax
fadd st(4)
mov dword [ebp + 0x2c], eax
mov ebp, ebp
mov dword [ebp + 0x34], edx
jmp dword [esi]
xchg di, si
xchg si, di
mov byte [esi + 0xbb], dl
mov ebp, ebp
mov word [esi + 0xbc], di
jne 0x4c3dde
je 0x4ac2ae
lock and edi, dword [ecx - 0x14c072e6]
lea edi, [edi]
jmp 0x4ac2b1
push esi
call fcn.004a305c
add al, 0xd8
dec ecx
add byte [eax + eax], dh
add byte [eax], al
xor al, 0
add byte [eax], al
ljmp 0
mov si, si
mov cl, byte [ebp + 0xc]
mov dx, word [ebp + 0x10]
jno 0x4b00a1
jo 0x4ad299
sti
cmp dword [edi], ecx
add byte [edx], 0x2e
add byte [eax], al
jo 0x4b00a1
xor al, 0x4a
push 0x12
mov ecx, 0x500
xchg cl, dl
xchg dl, cl
mov edi, 0x578000
push eax
push eax
rep stosd dword es:[edi], eax
shr ah, 0x40
shl bl, 0x20
push 0x53b010
js 0x4a57ce
jns 0x4ad2cd
cpuid
ret
jns 0x4a57ce
mov dword [ecx], 0x4b12b3
add al, 0
add byte [eax], al
daa
test dword [ebx], ecx
ljmp 0
mov bl, bl
call fcn.004bf1c4
push 0x17e
push esi
jno 0x4babb2
jo 0x4ad4f1
lea ecx, [edx - 0x68]
jo 0x4babb2
fnstcw word [eax - 1]
and al, 0x5e
mov ebx, dword [esi + 4]
shl bx, 0x20
mov eax, dword [ebp + 0x2c]
shl eax, 0x20
mov edx, dword [ebp + 0x34]
lea esi, [esi + 8]
cmp bl, bl
push edx
pop edx
div word [ebx]
jno 0x4abcf2
mov bp, bp
jo 0x4ad526
nop
cpuid
ret
jo 0x4abcf2
or byte [ebx - 0x6d3ba75], 0x66
mov esi, esi
jb 0x4ad53a
aam 0xc2
scasd eax, dword es:[edi]
jb 0x4bfdae
and eax, 0x4add8af7
add byte [ecx], bh
add byte [eax], al
sub al, 0
add byte [eax], al
jns 0x4ad587
dec esp
add byte [eax], al
add byte [eax], al
fcmovnb st(0), st(1)
dec ecx
add dh, ch
lea esp, cs:[esp - 0x68]
lea esp, [esp - 0x68]
push ebp
lea ebp, [esp + 0x10]
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x48], edi
pop dword [ebp + 0x40]
lea esi, [esp + 0x6c]
lea edi, [esp + 4]
mov ecx, 0xc
or ecx, ecx
je 0x4ad590
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
dec ecx
jne 0x4ad587
mov dword [ebp + 0x3c], esp
mov dword [esp], 0x4ad5a5
mov esi, 0x4ad5c3
jmp dword [esi]
js 0x4ad285
mov edx, edx
jns 0x4adf88
jns 0x4ad285
jns 0x4ad285
add eax, 0x4c37795b
add byte [eax], al
add byte [eax], al
fcmovnb st(0), st(1)
dec ecx
add byte [0x4ae86f1c], bl
add byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
add byte [ecx + 0x36004a70], ah
jo 0x4adffb
add byte [0xbc004bfc], cl
fisttp word [edx]
inc edx
mov esp, 0x4bfc0d
jo 0x4ae00d
add byte [esi - 0x77], ah
invalid
xchg esi, ecx
xchg cx, si
call fcn.004affe8
add esp, 4
push eax
call fcn.0049cf81
add esp, 0xc
shl ebp, 0x20
jmp 0x4ae01c
push esi
jne 0x4b3708
je 0x4ae028
push ecx
int1
je 0x4b3708
invalid
jne 0x4a4e2d
je 0x4aede1
add dword [edx + 0xf], 0xffffff84
inc esi
pushal
invalid
je 0x4a4e2d
add eax, 0x47e8bd8
shl dx, 0x20
lea esi, [esi + 8]
idiv word [ebx + edi]
shl bl, 0x20
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x34], edx
jmp dword [esi]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x34], edx
jmp dword [esi]
fnstenv [esi + 0x66]
mov ecx, ecx
shl cl, 0x20
jmp 0x4b00a5
push eax
jne 0x4c0f68
shl ch, 0x20
je 0x4b00b5
add dword [ebx], ebp
jo 0x4b00c5
je 0x4c0f68
test byte [ebp - 0x25fffef2], ch
lodsd eax, dword [esi]
mov eax, dword [ebp + 0xc]
inc edi
fisubr dword [ebp + 0x470c458b]
jne 0x4c2176
add dword [eax], eax
xchg ebp, edx
xchg edx, ebp
je 0x4b00d1
cpuid
xor eax, ebx
je 0x4c2176
and eax, 0xf810f6a
add byte [eax], al
add byte [eax + 3], dh
adc al, 0x60
mov bx, bx
lea esi, [esi + 8]
jmp dword [esi]
cmp edi, 0xf0479ff
mov byte [0x890fc390], al
mov byte [0x34ffff81], al
sub dword [edi], ecx
mov ch, ch
add eax, 0xe6860000
xor al, 0x29
js 0x4b092f
xchg dh, ah
xchg ah, dh
jns 0x4b034c
jle 0x4b032b
popal
sbb dword [edi], ecx
mov ebp, ebx
add eax, 0x2ac70000
push 2
shl ebp, 0x20
push esi
jne 0x4ad4d8
jns 0x4b092f
invalid
je 0x4b0366
xchg esp, eax
xchg ebx, eax
add ch, byte [edi + ecx - 0x7c]
insb byte es:[edi], dx
sar edi, 1
invalid
je 0x4ad4d8
fld dword [edx + 0x6640eec0]
shl eax, 0x20
push eax
push esi
mov edx, edx
mov bl, bl
shr ah, 0x40
mov byte [esi + 0xba], cl
shl dl, 0x20
push 0x49e043
ret
xor eax, eax
jb 0x4ab2f4
mov ebx, ebx
lea ebp, [ebp]
xchg esi, edx
xchg edx, esi
push 0x4bb2e0
ret
xor eax, 0xcd810f65
sbb eax, 0x370ffff
push cs
or byte [ecx], bl
jo 0x4a49ad
invalid
call dword [sym.imp.kernel32.dll_LocalFree]
jno 0x4aedd7
jo 0x4b4d51
add ebp, dword [eax - 0x5f7f7ff1]
invalid
jo 0x4aedd7
mov dword [ecx], 0x7f87810f
invalid
pop ss
mov ebp, 0xa499880f
add byte [eax], al
jns 0x4b6569
jns 0x4c09fd
push esi
call fcn.004bd801
adc ch, 0x8d
and al, 4
ja 0x4ac28d
mov al, al
shr al, 0x40
shr esi, 0x40
jbe 0x4b805d
in al, 0x68
ror byte [edi], 1
xchg byte [edx], ch
inc edx
invalid
jbe 0x4ac28d
invalid
mov edx, edx
mov edi, dword [ebp + 8]
dec eax
cmp eax, 0xe9
ja 0x49b4f9
jbe 0x4b8eb9
push 0xf
mov byte [0xfc931c3], al
and byte [ebx], 0xf6
invalid
xor ecx, ecx
jb 0x4a84e4
mov cl, byte [eax + 0x49ee5e]
jmp dword [ecx*4 + 0x49ee16]
add byte [eax], cl
add byte [eax], al
dec eax
add byte [eax], al
add byte [eax], al
dec edi
dec ebx
add byte [esi + edx*4 + 0x4b], ch
add byte [edi], cl
mov byte [0x4f00c390], al
dec ebx
add byte [eax], dh
arpl word [edx], cx
add eax, 0x66c08904
cmp eax, 0x850f0003
xchg ebp, eax
mov eax, dword [eax]
add byte [esp + eax - 8], dh
cmp ax, 3
jne 0x4c2217
je 0x4b9688
clc
jge 0x4b9657
jbe 0x4b9698
jno 0x4a2368
sbb edx, 0x70fffe8c
add dl, bh
jo 0x4b9692
xlatb
invalid
jo 0x4a2368
invalid
mov dword [0x75fffe6e], eax
add edx, ebx
bound ecx, qword [ecx + 0xf35fb80]
test byte [ebp + 0x75fffe6e], dl
add al, 0x5f
cpuid
ret
pop dword [esp - 4]
xor ebx, ebx
jb 0x4bdb0e
call dword [sym.imp.kernel32.dll_LoadLibraryA]
shl dl, 0x20
mov esi, eax
add cx, 0xdc4a
sub cx, 0xdc4a
test esi, esi
jb 0x4b8044
jne 0x4be1ce
xchg ebp, esi
xchg esi, ebp
je 0x4bab35
jle 0x4baacc
xor eax, 0x66966605
xchg esi, eax
xchg si, ax
xchg si, ax
pop esi
shr ch, 0x40
mov eax, 1
pop ebx
jne 0x4be1cb
mov ch, ch
je 0x4bab51
cpuid
xlatb
ret
je 0x4be1cb
or bl, 0x8d
and al, 4
push edx
mov bx, bx
push eax
call dword [sym.imp.kernel32.dll_ReadFile]
test eax, eax
jb 0x4ad537
jne 0x4c2ec1
shr ch, 0x40
je 0x4bab7e
xor eax, 0x12c35ddc
sbb ebp, ecx
cmp al, byte [ebx - 0x22270000]
jmp dword [esi]
pop ebp
ret
call fcn.004a43d6
mov ax, word [edi + 0x2c]
jmp 0x4babbc
push eax
jmp 0x4babbf
push esi
call fcn.004aeaae
mov ecx, dword [edi + 0x40]
push ecx
call fcn.004bc3cb
sub dl, 0x6a
add dword [esi - 0x18], edx
dec esi
add eax, 0x4f8bffff
inc eax
mov di, di
jmp 0x4babe0
push ecx
push esi
shr esi, 0x40
call fcn.004b1117
add esp, 0x20
jmp fcn.004bac26
js 0x49bd5f
mov ebp, ebp
jns 0x4bb746
ficomp word [ebp - 0x76f0d965]
jns 0x49bd5f
invalid
jne 0x4b9678
je 0x4bbec2
aas
out 0x66, eax
shl edx, 0x20
shl dx, 0x20
push esi
mov bp, bp
call fcn.004a224f
mov cl, byte [ebp + 0xc]
xchg edx, eax
xchg edx, eax
shr bl, 0x40
mov dx, dx
mov bp, bp
mov dx, word [ebp + 0x10]
push eax
pop eax
push eax
push ecx
pop ecx
jmp 0x4bbee7
push esi
xchg ecx, edx
xchg edx, ecx
xchg ecx, edx
xchg edx, ecx
mov byte [esi + 0xba], cl
lea ebx, [ebx]
mov byte [esi + 0xbb], 0
shl esi, 0x20
push eax
mov ax, cx
pop eax
mov word [esi + 0xbc], dx
mov dl, dl
call fcn.004bc158
jmp 0x4bb738
invalid
cmp ax, 4
jne 0x4bbeb8
je 0x4bdd30
mov dword [esi - 0x7d7bf06d], ebp
loope 0x4bdd34
je 0x4bbeb8
invalid
push dword [eax + edx*4]
xor al, 0x90
add eax, 0x4aea
popal
add byte [eax + 0x30], al
add byte [ecx], ah
add byte [eax], al
test byte [eax], al
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax + eax], ch
add byte [eax], al
mov byte [esi], dl
dec edx
add byte [ecx + 0x37], bh
dec esp
add byte [eax], al
add byte [eax], al
fcmovnb st(0), st(1)
dec ecx
add byte [edi], bh
fsubr dword [edi - 0x18]
dec edx
add byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
add byte [edx + 0x77004add], cl
into
add byte [eax], al
sub al, 0
add byte [eax], al
xchg ebp, eax
mov bh, 0x49
add byte [eax], al
add byte [eax], al
sub al, 0
add byte [eax], al
jns 0x4bddc7
dec esp
add byte [eax], al
add byte [eax], al
fcmovnb st(0), st(1)
dec ecx
add byte [ebx + 0x55], cl
ret
jmp 0x4be1cf
push edi
mov edi, dword [sym.imp.kernel32.dll_GetProcAddress]
push 0x562d8e
shl edx, 0x20
call fcn.004aa417
lea esp, [esp + 4]
call 0x4a19d4
xor eax, 0x126ff4d
fadd st(0), st(0)
in al, 0x20
movzx ebx, bx
js 0x4aaa3a
mov dx, dx
jns 0x4bed09
cwde
and al, 0xce
mov word [edi], cs
mov dword [ebx], ebp
mov ebp, 0x84c7fffe
mov ebx, dword [ebp + 0x40]
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
jns 0x4aaa3a
mov dword [ebx + ecx*4 + 0x568b405d], 0x4468b08
lea esi, [esi + 0xc]
mov dword [ebx + edx], eax
jmp dword [esi]
mul bl
mov dword [ebp + 0x2c], eax
mov eax, eax
jmp dword [esi]
mov edi, edi
mov cl, bl
rcr word [edi], cl
jmp dword [esi]
jmp 0x4c0f69
push esi
mov byte [esi + 0xba], cl
mov dx, dx
ja 0x4c13e1
jbe 0x4c0f80
stosb byte es:[edi], al
invalid
jbe 0x4c13e1
invalid
mov di, di
xchg ah, bh
xchg bh, ah
mov eax, dword [0x563044]
test eax, eax
jb 0x4af9b1
je 0x4c1e90
shl cx, 0x20
jne 0x4c1e73
nop
cpuid
ret 0x5c7
mov dword [0x563044], 0
call dword [sym.imp.kernel32.dll_GetTickCount]
push eax
call fcn.004fbe72
add esp, 4
call fcn.004fbe7f
mov edx, dword [esi]
push eax
push 1
push edx
call fcn.0049d793
call fcn.004a96bb
sub al, 0x34
dec esp
add byte [eax + eax], cl
add byte [eax], al
sub al, 0
add byte [eax], al
adc cl, ch
dec ecx
add byte [eax + eax], ch
add byte [eax], al
sub al, 0
add byte [eax], al
jns 0x4c1ef8
dec esp
add byte [eax], al
add byte [eax], al
fcmovnb st(0), st(1)
dec ecx
add dl, bh
push ecx
cmp edi, eax
jb 0x4a0fe3
jae 0x4c2184
inc ecx
xchg esi, eax
les ebp, [eax]
lea ebp, [ebp]
mov si, si
mov cl, byte [ebp + 0xc]
shr edx, 0x40
mov dx, word [ebp + 0x10]
call fcn.004c3e1a
and eax, 0xffd2897d
cmc
mov ebp, esp
push ebx
shl ebp, 0x20
jmp 0x4c2237
push esi
mov esi, dword [ebp + 0xc]
clc
xor eax, eax
jb 0x4bb36b
xor ebx, ebx
jb 0x4b033a
jmp 0x4c224e
push edi
mov al, byte [esi + 0x16]
jmp 0x4b8ea2
shr dh, 0x40
mov eax, dword [ebp + 0x10]
mov cx, cx
pop ebp
ret
stc
jb 0x4c3de5
ljmp 0x3682:0xfc3a20f
jb 0x4bdd21
fcmovu st(0), st(0)