Function at 0x472fb0
Capabilities:
Read file on windows

Disassembly:
mov eax, 0xc354
call fcn.004a6ac0
push ebx
mov ebx, ecx
mov dword [esp + 0x20], ebx
cmp edx, 0x132
jae 0x472fe1
push str.Error:_This_file_is_either_not_a_module__or_is_not_supported.
call dword [0x54e480]
add esp, 4
xor al, al
pop ebx
add esp, 0xc354
ret
push ebp
push esi
push edi
push ebx
push 0x132
lea eax, [esp + 0x38]
push 1
push eax
call fcn.0048a465
push ebx
push 1
lea eax, [esp + 0x2c]
push 2
push eax
call fcn.0048a465
movzx eax, word [esp + 0x34]
inc eax
push eax
call fcn.004893b5
mov esi, eax
add esp, 0x24
test esi, esi
je 0x4737a3
movzx ecx, word [esp + 0x14]
push ebx
push ecx
push 1
push esi
call fcn.0048a465
movzx eax, word [esp + 0x24]
mov edx, 0x5511e3
add esp, 0x10
mov ecx, esi
sub edx, esi
mov byte [eax + esi], 0
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x473042
push esi
call fcn.00488d73
push ebx
push 1
lea eax, [esp + 0x24]
push 2
push eax
call fcn.0048a465
movzx eax, word [esp + 0x2c]
push 1
push eax
push ebx
call fcn.00489d25
push ebx
push 1
lea eax, [esp + 0x40]
push 2
push eax
call fcn.0048a465
movzx eax, word [esp + 0x48]
push 1
push eax
push ebx
call fcn.00489d25
mov si, word [esp + 0x71]
mov eax, 0x100
add esp, 0x3c
cmp si, ax
ja 0x473795
mov dx, word [esp + 0x39]
cmp dx, ax
ja 0x473795
mov cl, byte [esp + 0x34]
cmp cl, 0x20
ja 0x473795
mov eax, 0x2000
cmp word [esp + 0x3b], ax
ja 0x473795
movzx eax, byte [esp + 0x161]
mov edi, 0x551d96
shr eax, 1
and eax, 1
mov word [0x551e9e], si
mov byte [0x551ec0], al
lea esi, [esp + 0x41]
movzx eax, cl
mov ecx, 0x40
mov dword [0x551eac], eax
movzx eax, word [esp + 0x37]
mov word [0x551ea0], ax
movzx eax, byte [esp + 0x40]
mov word [0x551ea2], ax
movzx eax, byte [esp + 0x3f]
mov word [0x551ea4], ax
xor eax, eax
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp ax, word [esp + 0x3d]
jae 0x47338e
nop
lea eax, [esi + 1]
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.00420710
test al, al
je 0x47378e
movsx ebp, si
push ebx
mov esi, dword [ebp*4 + 0x550bc4]
mov dword [esp + 0x18], esi
call fcn.00490245
push ebx
movzx eax, al
push 0x60
mov word [esi + 0xd8], ax
lea eax, [esi + 3]
push 1
push eax
call fcn.0048a465
push ebx
call fcn.00490245
push ebx
mov byte [esi + 0x6b], al
call fcn.00490245
push ebx
mov byte [esi + 0x63], al
call fcn.00490245
push ebx
mov byte [esi + 0x65], al
call fcn.00490245
push ebx
mov byte [esi + 0x66], al
call fcn.00490245
push ebx
push 0x18
mov byte [esi + 0x67], al
lea eax, [esi + 0x74]
push 2
push eax
call fcn.0048a465
push ebx
call fcn.00490245
push ebx
mov byte [esi + 0x6c], al
call fcn.00490245
add esp, 0x40
mov byte [esi + 0x64], al
push ebx
call fcn.00490245
push ebx
mov byte [esi + 0x68], al
call fcn.00490245
push ebx
mov byte [esi + 0x69], al
call fcn.00490245
push ebx
push 0x18
mov byte [esi + 0x6a], al
lea eax, [esi + 0xa4]
push 2
push eax
call fcn.0048a465
push ebx
call fcn.00490245
push ebx
mov byte [esi + 0x6d], al
call fcn.00490245
push ebx
mov byte [esi + 0x6e], al
call fcn.00490245
push ebx
mov byte [esi + 0x6f], al
call fcn.00490245
push ebx
push 1
mov byte [esi + 0x70], al
lea eax, [esi + 0x72]
push 2
push eax
call fcn.0048a465
add esp, 0x3c
mov ecx, ebx
call fcn.00472f60
mov edi, eax
test edi, edi
je 0x4737a3
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x473240
sub ecx, edx
mov eax, 0x16
cmp ecx, 0x16
cmova ecx, eax
imul eax, ebp, 0x17
push ecx
push edi
add eax, 0x55120f
push eax
call fcn.00484480
push edi
call fcn.00488d73
xor eax, eax
add esp, 0x10
xor ebp, ebp
cmp ax, word [esi + 0xd8]
jge 0x473372
lea edi, [esi + 0xf5]
push ebx
call fcn.00490245
push 1
xor al, 0x80
push 1
push ebx
mov byte [edi - 1], al
call fcn.00489d25
push ebx
call fcn.00490245
push ebx
mov byte [edi], al
call fcn.00490245
push ebx
mov byte [edi + 0xb], al
call fcn.00490245
push ebx
push 1
mov byte [edi + 0xd], al
lea eax, [edi + 0xf]
push 4
push eax
call fcn.0048a465
push ebx
push 1
lea esi, [edi + 0x13]
push 4
push esi
call fcn.0048a465
push ebx
push 1
lea eax, [esp + 0x64]
push 4
push eax
call fcn.0048a465
mov eax, dword [esp + 0x6c]
add esp, 0x4c
sub eax, dword [esi]
mov dword [edi + 0x17], eax
lea eax, [esp + 0x10]
push ebx
push 1
push 2
push eax
call fcn.0048a465
mov ax, word [esp + 0x20]
add esp, 0x10
test al, 1
je 0x473309
or byte [edi + 0xc], 0x10
test al, 0x10
je 0x473311
or byte [edi + 0xc], 1
test al, 0x20
je 0x473319
or byte [edi + 0xc], 2
mov ecx, ebx
call fcn.00472f60
mov esi, eax
test esi, esi
je 0x4737a3
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x473330
sub ecx, edx
mov eax, 0x16
cmp ecx, 0x16
cmova ecx, eax
lea eax, [edi - 0x19]
push ecx
push esi
push eax
call fcn.00484480
push esi
call fcn.00488d73
mov eax, dword [esp + 0x24]
inc ebp
add esp, 0x10
add edi, 0xd8
movsx eax, word [eax + 0xd8]
cmp ebp, eax
jl 0x473284
mov eax, dword [esp + 0x24]
movzx ecx, word [esp + 0x3d]
movzx esi, ax
movsx eax, si
cmp eax, ecx
jl 0x473130
mov dx, word [esp + 0x39]
push ebx
movzx eax, dx
push eax
lea eax, [esp + 0x16c]
push 2
push eax
call fcn.0048a465
movzx eax, word [esp + 0x49]
movzx ecx, byte [esp + 0x44]
imul ecx, eax
lea eax, [esp + 0x374]
push ebx
push ecx
push 2
push eax
call fcn.0048a465
xor ebp, ebp
xor eax, eax
add esp, 0x20
mov dword [esp + 0x10], ebp
cmp ax, word [esp + 0x3b]
jae 0x47357f
push ebx
push 1
lea eax, [esp + 0x24]
push 2
push eax
call fcn.0048a465
add esp, 0x10
cmp word [esp + 0x1c], 0
je 0x4736eb
movzx eax, word [esp + ebp*2 + 0x164]
push 5
push eax
call fcn.00488d68
mov esi, eax
add esp, 8
mov dword [esp + ebp*4 + 0x4364], esi
test esi, esi
je 0x4736e4
push ebx
call fcn.00489a43
mov edi, eax
push ebx
mov dword [esp + 0x30], edi
call fcn.00489a43
movzx ecx, word [esp + 0x24]
add esp, 8
add ecx, edi
cmp eax, ecx
jae 0x47356d
nop dword [eax]
push ebx
call fcn.00490245
add esp, 4
mov byte [esp + 0x14], al
test al, al
je 0x473569
push ebx
call fcn.00489a43
mov cl, byte [esp + 0x18]
mov edx, eax
movzx eax, byte [esp + 0x18]
and cl, 0x1f
dec cl
mov dword [esp + 0x24], edx
movzx edi, cl
add esp, 4
add edi, edx
xor ebp, ebp
shr eax, 5
mov dword [esp + 0x24], eax
push 0
push edx
push ebx
call fcn.00489d25
push ebx
call fcn.00489a43
add esp, 0x10
cmp eax, edi
jae 0x47353d
nop word [eax + eax]
push ebx
call fcn.00490245
add esp, 4
test al, al
je 0x47353d
cmp al, 1
jne 0x4734c4
push ebx
call fcn.00490245
add esp, 4
inc al
mov byte [esi], al
jmp 0x47352c
cmp al, 2
jne 0x4734d8
push ebx
call fcn.00490245
add esp, 4
inc al
mov byte [esi + 1], al
jmp 0x47352c
lea ecx, [eax - 3]
cmp cl, 0xf
ja 0x4734f1
push ebx
mov byte [esi + 3], cl
call fcn.00490245
add esp, 4
mov byte [esi + 4], al
jmp 0x47352c
lea ecx, [eax - 0x1a]
cmp cl, 3
ja 0x473513
movzx eax, al
push ebx
mov al, byte [eax + 0x4dd856]
mov byte [esi + 3], al
call fcn.00490245
add esp, 4
mov byte [esi + 4], al
jmp 0x47352c
cmp al, 0x1e
jae 0x4736d3
test al, al
je 0x47352c
push 1
push 1
push ebx
call fcn.00489d25
add esp, 0xc
push ebx
call fcn.00489a43
add esp, 4
cmp eax, edi
jb 0x4734a0
mov edx, dword [esp + 0x20]
inc ebp
add esi, 5
cmp ebp, dword [esp + 0x24]
jle 0x473480
push ebx
call fcn.00489a43
movzx ecx, word [esp + 0x20]
add esp, 4
add ecx, dword [esp + 0x28]
cmp eax, ecx
jb 0x473440
mov ebp, dword [esp + 0x10]
movzx eax, word [esp + 0x3b]
inc ebp
mov dword [esp + 0x10], ebp
cmp ebp, eax
jl 0x4733d6
xor esi, esi
xor eax, eax
mov dword [esp + 0x10], esi
cmp ax, word [esp + 0x39]
jae 0x473662
nop dword [eax]
nop word [eax + eax]
movzx edi, word [esp + esi*2 + 0x164]
mov dword [esp + 0x28], edi
test di, di
je 0x473650
mov eax, 0x100
cmp di, ax
ja 0x473650
push 1
push 0xa010
call fcn.00488d68
mov ebp, eax
add esp, 8
mov dword [esi*4 + 0x551ee0], ebp
test ebp, ebp
je 0x47378e
mov dl, byte [esp + 0x34]
mov word [esi*2 + 0x550fe0], di
xor edi, edi
movzx ecx, dl
test dl, dl
je 0x473650
mov ebx, dword [esp + 0x28]
nop dword [eax]
imul ecx, esi
add ecx, edi
movzx eax, word [esp + ecx*2 + 0x364]
mov ecx, dword [esp + eax*4 + 0x4364]
test ecx, ecx
je 0x473641
movzx esi, bx
test esi, esi
je 0x47363d
mov edx, ebp
mov eax, dword [ecx]
lea ecx, [ecx + 5]
mov dword [edx], eax
mov al, byte [ecx - 1]
mov byte [edx + 4], al
add edx, 0xa0
sub esi, 1
jne 0x473621
mov dl, byte [esp + 0x34]
mov esi, dword [esp + 0x10]
inc edi
movzx ecx, dl
add ebp, 5
cmp edi, ecx
jl 0x473600
mov ebx, dword [esp + 0x2c]
movzx eax, word [esp + 0x39]
inc esi
mov dword [esp + 0x10], esi
cmp esi, eax
jl 0x4735a0
mov dx, word [esp + 0x3d]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], ecx
cmp ax, dx
jae 0x473781
nop dword [eax + eax]
mov ebp, dword [ecx*4 + 0x550bc4]
test ebp, ebp
je 0x473771
xor eax, eax
xor edi, edi
cmp ax, word [ebp + 0xd8]
jge 0x473771
lea esi, [ebp + 0x104]
mov al, byte [esi - 3]
shr al, 4
and al, 1
mov byte [esp + 0x14], al
mov eax, dword [esi]
lea ecx, [eax + eax]
cmove ecx, eax
add ecx, 0x1f
push ecx
call fcn.004893b5
add esp, 4
mov dword [esi - 8], eax
test eax, eax
jne 0x473724
xor dl, dl
xor ecx, ecx
jmp 0x473729
push str.Error_loading_BEM:_illegal_pattern_opcode_
call dword [0x54e480]
mov ebp, dword [esp + 0x14]
jmp 0x4736f6
push str.Not_enough_memory_
jmp 0x4736f0
push str.Error_loading_BEM:_This_module_is_corrupt_
call dword [0x54e480]
add esp, 4
xor esi, esi
test ebp, ebp
jle 0x4737a3
push dword [esp + esi*4 + 0x4364]
call fcn.00488d73
inc esi
add esp, 4
cmp esi, ebp
jl 0x473703
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xc354
ret
mov dl, 1
lea ecx, [eax + 0xf]
mov dword [esi - 0xc], ecx
test dl, dl
je 0x47378e
movzx eax, byte [esp + 0x14]
push ebx
push dword [esi]
inc eax
push eax
push ecx
call fcn.0048a465
movzx eax, byte [esi - 3]
mov edx, dword [esi]
mov ecx, dword [esi - 0xc]
push eax
call fcn.00435050
movsx eax, word [ebp + 0xd8]
inc edi
add esp, 0x14
add esi, 0xd8
cmp edi, eax
jl 0x4736a6
mov dx, word [esp + 0x3d]
mov ecx, dword [esp + 0x10]
inc ecx
movzx eax, dx
mov dword [esp + 0x10], ecx
cmp ecx, eax
jl 0x473680
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0xc354
ret
push str.Not_enough_memory_
jmp 0x47379a
push str.Error_loading_BEM:_The_module_is_corrupt_
call dword [0x54e480]
add esp, 4
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xc354
ret