Function at 0x100721dd
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
mov di, word [esi]
xor ebx, ebx
mov dword [ebp - 0x34], ecx
mov byte [ebp - 1], bl
mov byte [ebp - 2], bl
mov dword [ebp - 8], 0xffff0000
mov dword [ebp - 0x10], ebx
mov eax, edi
call fcn.10002df6
test al, al
je 0x10072220
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], 1
jmp 0x10072340
push 4
push esi
push str._UNI
call fcn.10040d9e
add esp, 0xc
test al, al
je 0x10072240
mov dword [ebp - 8], 0x4b0
jmp 0x10072340
push 8
push esi
push str._UNICODE
call fcn.10040d9e
add esp, 0xc
test al, al
jne 0x10072234
push 5
push esi
push str._UNIB
call fcn.10040d9e
add esp, 0xc
test al, al
je 0x10072274
mov dword [ebp - 8], 0x4b1
jmp 0x10072340
push 9
push esi
push str._UNICODEB
call fcn.10040d9e
add esp, 0xc
test al, al
jne 0x10072268
push 5
push esi
push str._ANSI
call fcn.10040d9e
add esp, 0xc
test al, al
je 0x100722a4
mov dword [ebp - 8], ebx
jmp 0x10072340
push 4
push esi
push str._GBK
call fcn.10040d9e
add esp, 0xc
test al, al
je 0x100722c1
mov dword [ebp - 8], 0x3a8
jmp 0x10072340
push 5
push esi
push str._BIG5
call fcn.10040d9e
add esp, 0xc
test al, al
je 0x100722de
mov dword [ebp - 8], 0x3b6
jmp 0x10072340
push 5
push esi
push str._UTF8
call fcn.10040d9e
add esp, 0xc
test al, al
je 0x100722fb
mov dword [ebp - 8], 0xfde9
jmp 0x10072340
push 5
push esi
push str._UTF7
call fcn.10040d9e
add esp, 0xc
test al, al
je 0x10072318
mov dword [ebp - 8], 0xfde8
jmp 0x10072340
cmp di, 0x2d
jne 0x10072340
xor eax, eax
add esi, 2
mov ax, word [esi]
push eax
call fcn.10045b88
add esp, 4
test al, al
je 0x10072340
push esi
mov dword [ebp + 8], esi
call fcn.10046e22
pop ecx
mov dword [ebp - 8], eax
lea eax, [ebp + 8]
push eax
call fcn.10008e60
pop ecx
mov byte [ebp - 0x2c], 0
jmp 0x100723a5
push 4
lea eax, [ebp + 8]
push eax
push 0x100d1a60
call fcn.10048195
add esp, 0xc
test al, al
je 0x1007236d
or byte [ebp - 0x2c], 2
jmp 0x100723a5
push 3
lea eax, [ebp + 8]
push eax
push 0x100ccb50
call fcn.10048195
add esp, 0xc
test al, al
je 0x1007238a
or byte [ebp - 0x2c], 4
jmp 0x100723a5
push 5
lea eax, [ebp + 8]
push eax
push 0x100d1a58
call fcn.10048195
add esp, 0xc
test al, al
je 0x100723ae
or byte [ebp - 0x2c], 0xc
mov eax, dword [ebp + 8]
cmp word [eax], 0x2a
je 0x10072350
mov al, byte [ebp - 0x2c]
and al, 0xc
push 0x100c6a64
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x51], al
call fcn.100501eb
push 0x100d1a44
lea ecx, [ebp - 0x30]
call fcn.100501eb
mov ecx, dword [ebp - 0x34]
push ebx
push 0x2c
lea eax, [ebp - 0x40]
push eax
xor edi, edi
lea eax, [ebp + 8]
inc edi
push eax
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x70], ebx
call fcn.1003aaa0
mov esi, dword [ebp - 0x40]
push esi
push 0x100d1a40
mov dword [ebp + 8], eax
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x10072416
mov byte [ebp - 1], 9
mov dword [ebp - 0x70], edi
push esi
push 0x100d1a3c
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x1007249d
mov dword [ebp - 0x70], edi
or byte [ebp - 1], 1
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x20], ebx
call fcn.10046123
mov ecx, dword [ebp - 0x34]
push edi
push ebx
lea eax, [ebp - 0x74]
push eax
push dword [ebp + 8]
call fcn.10057b62
mov eax, dword [ebp - 0x74]
mov dword [ebp + 8], eax
cmp word [eax], 0x2c
jne 0x10072564
lea ecx, [ebp - 0x1c]
call fcn.10046123
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
call fcn.1004907a
mov esi, dword [ebp - 0x1c]
push esi
push 0x100d1a38
mov dword [ebp - 0xc], esi
call fcn.10040e34
add esp, 0x14
test al, al
je 0x100724d9
mov byte [ebp - 2], 2
mov dword [ebp - 0x20], 0x100d1a34
jmp 0x1007255c
cmp word [esi], bx
je 0x1007242a
push esi
push 0x100c8014
call fcn.10040e34
test al, al
pop ecx
pop ecx
jne 0x1007242a
push esi
push 0x100c7a50
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x1007242e
or byte [ebp - 0x2c], 0x10
mov byte [ebp - 1], 2
jmp 0x1007242e
push esi
push 0x100d1a30
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x100724f0
mov byte [ebp - 2], 3
jmp 0x1007255c
push esi
push 0x100d1a2c
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x10072513
mov byte [ebp - 2], 3
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
jmp 0x1007255c
push esi
push 0x100cb458
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x10072531
mov byte [ebp - 2], 1
mov dword [ebp - 0x20], 0x100d1a28
jmp 0x1007255c
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.1005381f
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x2b
pop ecx
pop ecx
jne 0x1007255c
add dword [ebp - 0xc], 2
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.1005381f
pop ecx
pop ecx
lea ecx, [ebp - 0x1c]
call fcn.1003f96c
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x10072583
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 8]
push eax
call fcn.1004907a
add esp, 0xc
mov ecx, dword [ebp - 0x34]
push ebx
lea eax, [ebp - 0x30]
push eax
call fcn.10002f54
push 8
lea ecx, [ebp - 0x24]
call fcn.10045fcc
cmp dword [ebp - 8], ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], eax
mov word [eax], bx
mov dword [ebp - 0x18], edi
jl 0x10073167
lea ecx, [ebp - 0x68]
call fcn.10045faf
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
cmp word [eax], 0x75
jne 0x10072755
cmp word [eax + 2], 0x64
jne 0x10072755
cmp word [eax + 4], 0x3a
jne 0x10072755
mov ecx, dword [ebp + 8]
push 0x22
add eax, 6
pop esi
mov word [ecx], bx
cmp word [eax], si
mov dword [ebp - 0xc], eax
mov byte [ebp - 1], 5
jne 0x100725fd
inc eax
inc eax
mov dword [ebp - 0xc], eax
mov edi, eax
push 0x3a
lea eax, [ebp - 0xc]
call fcn.100a1095
mov eax, dword [ebp - 0xc]
cmp eax, edi
pop ecx
je 0x1007261b
cmp word [eax - 2], si
jne 0x1007261b
mov word [eax - 2], bx
cmp word [eax], 0x3a
jne 0x10072626
mov word [eax], bx
inc eax
inc eax
cmp word [eax], si
mov ecx, eax
jne 0x1007263f
lea ecx, [eax + 2]
inc eax
inc eax
cmp word [eax], si
jne 0x1007263a
mov word [eax], bx
cmp word [eax], bx
jne 0x10072630
push ebx
push ebx
push 0x10000
push ecx
lea eax, [ebp - 0x68]
push eax
push edi
call fcn.1003d5a1
mov esi, dword [ebp - 0x64]
add esp, 0x18
cmp esi, ebx
jle 0x10072668
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x68]
add eax, ecx
mov dword [ebp + 8], eax
jmp 0x1007266b
mov eax, dword [ebp + 8]
movsx edx, byte [eax]
mov edi, 0xff
xor ecx, ecx
cmp edx, edi
mov dword [ebp - 0x58], ebx
jne 0x1007268f
movsx ebx, byte [eax + 1]
cmp ebx, 0xfe
jne 0x1007268f
mov ebx, 0x4b0
jmp 0x100726a4
cmp edx, 0xfe
jne 0x100726a8
movsx ebx, byte [eax + 1]
cmp ebx, edi
jne 0x100726a8
mov ebx, 0x4b1
push 2
jmp 0x100726cf
cmp edx, 0xef
jne 0x100726d6
movsx edx, byte [eax + 1]
cmp edx, 0xbb
jne 0x100726d6
movsx edx, byte [eax + 2]
cmp edx, 0xbf
jne 0x100726d6
mov ebx, 0xfde9
push 3
and dword [ebp - 0x58], 0
pop ecx
jmp 0x100726d9
mov ebx, dword [ebp - 8]
sub esi, ecx
cmp ebx, 0x4b1
lea edi, [ecx + eax]
jne 0x10072703
and esi, 0xfffffffe
add esi, edi
cmp edi, esi
mov ecx, edi
ja 0x1007274f
mov al, byte [ecx]
mov dl, byte [ecx + 1]
mov byte [ecx], dl
mov byte [ecx + 1], al
inc ecx
inc ecx
cmp ecx, esi
jbe 0x100726f1
jmp 0x1007274c
cmp ebx, 0x4b0
je 0x1007274f
cmp dword [ebp - 0x10], 0
je 0x1007271c
push esi
push edi
call fcn.10057670
pop ecx
pop ecx
mov ebx, eax
mov eax, dword [ebp - 0x68]
and dword [ebp - 0x68], 0
mov dword [ebp - 0x44], eax
lea eax, [esi + esi + 0x20]
push eax
lea ecx, [ebp - 0x68]
call fcn.10045ff1
push ebx
push esi
push edi
lea ecx, [ebp - 0x68]
call fcn.100461de
mov eax, dword [ebp - 0x68]
lea ecx, [ebp - 0x44]
mov dword [ebp + 8], eax
call fcn.1003f96c
mov eax, dword [ebp + 8]
or dword [ebp - 0x10], 4
jmp 0x1007278e
mov eax, dword [ebp - 0x30]
cmp word [eax], bx
je 0x10072e0b
cmp byte [ebp - 1], 1
mov eax, dword [ebp + 8]
jne 0x1007277c
cmp word [eax], 0x2c
je 0x1007277c
mov dword [ebp - 0x18], 0x80070057
jmp 0x1007315f
inc eax
inc eax
test byte [ebp - 1], 1
mov dword [ebp + 8], eax
je 0x10072ad8
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x70]
xor edi, edi
xor edx, edx
or ecx, edx
mov dword [ebp - 0xc], edi
je 0x1007288e
lea eax, [ebp + 8]
push eax
call fcn.1003f9c4
mov esi, dword [ebp + 8]
lea eax, [ebp + 8]
push eax
call fcn.10005b74
mov eax, dword [ebp + 8]
cmp word [eax], di
pop ecx
pop ecx
je 0x100727c5
mov word [eax], di
mov eax, dword [ebp + 8]
cmp word [esi], di
je 0x1007288e
mov ecx, dword [ebp - 0x34]
push edi
push 0xffffffffffffffff
push edi
push esi
call fcn.10010cdd
cmp eax, edi
je 0x1007288b
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 4]
xor edx, edx
xor ecx, ecx
test byte [ebp - 1], 8
je 0x1007285d
mov al, byte [esi]
cmp al, 0xff
jne 0x10072806
cmp byte [esi + 1], 0xfe
jne 0x10072806
mov ebx, 0x4b0
jmp 0x10072815
cmp al, 0xfe
jne 0x10072819
cmp byte [esi + 1], 0xff
jne 0x10072819
mov ebx, 0x4b1
push 2
jmp 0x10072830
cmp al, 0xef
jne 0x10072834
cmp byte [esi + 1], 0xbb
jne 0x10072834
cmp byte [esi + 2], 0xbf
jne 0x10072834
mov ebx, 0xfde9
push 3
pop ecx
mov dword [ebp - 0x10], edx
sub edi, ecx
add esi, ecx
cmp ebx, 0x4b1
je 0x1007285d
cmp ebx, 0x4b0
je 0x1007285d
cmp dword [ebp - 0x10], edx
je 0x1007285a
push edi
push esi
call fcn.10057670
pop ecx
pop ecx
mov ebx, eax
xor edx, edx
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], edx
jg 0x10072877
cmp ebx, 0x4b0
je 0x10072877
push ebx
push edi
push esi
lea ecx, [ebp - 0xc]
call fcn.100461de
jmp 0x10072883
shr edi, 1
push edi
push esi
lea ecx, [ebp - 0xc]
call fcn.10046247
mov eax, dword [ebp - 0xc]
mov dword [ebp + 8], eax
jmp 0x1007288e
mov eax, dword [ebp + 8]
cmp byte [ebp - 2], 3
mov edi, eax
jne 0x1007289c
push eax
jmp 0x100729ec
cmp byte [ebp - 2], 0
je 0x10072934
cmp byte [ebp - 2], 1
mov ebx, 0x100ca648
je 0x100728b6
mov ebx, 0x100c7100
lea ecx, [ebp - 0x1c]
call fcn.10046123
mov eax, dword [ebp + 8]
mov esi, eax
xor edi, edi
jmp 0x1007290d
cmp cx, 0xd
jne 0x100728dd
cmp word [eax + 2], 0xa
jne 0x100728e3
mov word [eax], di
add dword [ebp + 8], 2
jmp 0x100728e6
cmp cx, 0xa
jne 0x10072908
mov word [eax], di
cmp byte [ebp - 2], 0
jne 0x100728f5
push ebx
lea ecx, [ebp - 0x1c]
call fcn.1004618f
push esi
lea ecx, [ebp - 0x1c]
mov byte [ebp - 2], 0
call fcn.1004618f
mov eax, dword [ebp + 8]
lea esi, [eax + 2]
inc eax
inc eax
mov dword [ebp + 8], eax
mov cx, word [eax]
cmp cx, di
jne 0x100728c7
cmp word [esi], di
je 0x10072996
cmp byte [ebp - 2], 0
jne 0x10072929
push ebx
lea ecx, [ebp - 0x1c]
call fcn.1004618f
push esi
lea ecx, [ebp - 0x1c]
call fcn.1004618f
jmp 0x10072996
mov edx, dword [ebp - 0x4c]
test edx, edx
jg 0x100729ac
jl 0x10072943
cmp dword [ebp - 0x50], 0
jae 0x100729ac
mov cx, word [eax]
xor esi, esi
xor ebx, ebx
test cx, cx
je 0x10072979
cmp cx, 0xa
jne 0x1007295b
add esi, 1
adc ebx, 0
inc eax
inc eax
mov dword [ebp + 8], eax
mov cx, word [eax]
test cx, cx
jne 0x1007294f
cmp eax, edi
jbe 0x10072979
cmp word [eax - 2], 0xa
je 0x10072979
add esi, 1
adc ebx, 0
push 0x20
lea ecx, [ebp - 0x1c]
call fcn.10046141
push ebx
push esi
push 0x100c72f0
push dword [ebp - 0x1c]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
push dword [ebp - 0x30]
call fcn.100457c2
lea ecx, [ebp - 0x1c]
jmp 0x10072ac4
mov esi, dword [ebp - 0x50]
mov ecx, esi
or ecx, edx
jne 0x10072a1d
mov dx, word [eax]
test dx, dx
push 0xa
mov ecx, eax
mov esi, eax
pop ebx
je 0x10072a0b
cmp dx, bx
jne 0x100729cd
mov esi, ecx
mov ecx, eax
inc eax
inc eax
mov dword [ebp + 8], eax
mov dx, word [eax]
test dx, dx
jne 0x100729c4
cmp eax, edi
jbe 0x100729fc
cmp word [eax - 2], bx
je 0x100729fc
cmp word [ecx], bx
jne 0x100729eb
inc ecx
inc ecx
push ecx
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
call fcn.100457c2
jmp 0x10072ac9
cmp ecx, edi
jbe 0x10072a0b
lea eax, [ecx - 2]
cmp word [eax], 0xd
jne 0x10072a0b
mov ecx, eax
cmp word [esi], bx
jne 0x10072a12
inc esi
inc esi
sub ecx, esi
sar ecx, 1
push ecx
push esi
jmp 0x10072aab
test edx, edx
jl 0x10072a47
jle 0x10072a42
mov cx, word [eax]
test cx, cx
je 0x10072a47
cmp cx, 0xa
jne 0x10072a37
add esi, 0xffffffff
adc edx, 0xffffffff
inc eax
inc eax
test edx, edx
mov dword [ebp + 8], eax
jg 0x10072a23
jl 0x10072a47
cmp esi, 1
ja 0x10072a23
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
mov ebx, esi
jmp 0x10072a97
mov ecx, ebx
or ecx, edi
je 0x10072a69
add esi, 0xffffffff
adc dword [ebp - 0x38], 0xffffffff
js 0x10072aa2
jg 0x10072a69
test esi, esi
jb 0x10072aa2
lea eax, [ebp + 8]
call fcn.10005b53
mov eax, ebx
or eax, edi
je 0x10072a7e
mov eax, esi
or eax, dword [ebp - 0x38]
je 0x10072a9f
mov eax, dword [ebp + 8]
cmp word [eax], 0xd
jne 0x10072a8c
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0xa
jne 0x10072a97
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0
jne 0x10072a54
jmp 0x10072aa2
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0x20]
sar eax, 1
push eax
push dword [ebp - 0x20]
lea ecx, [ebp - 0x20]
call fcn.10050208
push dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
push dword [ebp - 0x30]
call fcn.100457c2
lea ecx, [ebp - 0x20]
call fcn.1003f96c
lea ecx, [ebp - 0xc]
call fcn.1003f96c
xor ebx, ebx
jmp 0x10072e0b
push 8
lea ecx, [ebp - 0x1c]
call fcn.10045fcc
mov eax, dword [ebp - 0x24]
mov word [eax], bx
xor eax, eax
cmp byte [ebp - 1], 2
lea edi, [ebp - 0x84]
stosd dword es:[edi], eax
mov eax, dword [0x100e1348]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x6c], ebx
lea eax, [ebp - 0x88]
je 0x10072b0e
lea eax, [ebp - 0x6c]
cmp byte [0x100e2e70], 0
mov dword [ebp - 0x28], eax
je 0x10072b31
push 0x556a
push str.DBG__d:_r_n
push 0x100e3108
call fcn.10011029
add esp, 0xc
cmp byte [ebp - 1], 2
mov dword [ebp - 0xc], ebx
je 0x10072ca9
push dword [ebp - 0x40]
xor esi, esi
xor ebx, ebx
call fcn.10004e63
test eax, eax
pop ecx
je 0x10072b66
push 7
push 0x80000000
push dword [ebp - 0x40]
call fcn.10014572
add esp, 0xc
mov dword [ebp - 0x6c], eax
jmp 0x10072b81
push esi
push 0x2000000
push 3
push esi
push 7
push 0x80000000
push dword [ebp - 0x40]
lea ecx, [ebp - 0x6c]
call fcn.10005b9d
mov eax, dword [ebp - 0x28]
cmp dword [eax], esi
je 0x10072c29
xor eax, eax
push eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x18], 0
mov byte [ebp - 0x17], 0
mov byte [ebp - 0x16], 0
lea edi, [ebp - 0x15]
stosw word es:[edi], ax
lea eax, [ebp - 0x5c]
push eax
push 3
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x28]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [ebp - 0x18], 0xff
jne 0x10072bd0
cmp byte [ebp - 0x17], 0xfe
jne 0x10072c08
mov dword [ebp - 8], 0x4b0
jmp 0x10072be3
cmp byte [ebp - 0x18], 0xfe
jne 0x10072be7
cmp byte [ebp - 0x17], 0xff
jne 0x10072c08
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x10072c02
cmp byte [ebp - 0x18], 0xef
jne 0x10072c08
cmp byte [ebp - 0x17], 0xbb
jne 0x10072c08
cmp byte [ebp - 0x16], 0xbf
jne 0x10072c08
mov dword [ebp - 8], 0xfde9
push 3
xor ebx, ebx
pop esi
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 0x28]
mov edi, dword [eax]
push 0
push ebx
push esi
push edi
call fcn.10040d01
mov ebx, edx
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x80], eax
jg 0x10072c54
jl 0x10072c29
test eax, eax
jae 0x10072c54
lea ecx, [ebp - 0x6c]
call fcn.10002d56
lea ecx, [ebp - 0x1c]
call fcn.1003f96c
lea ecx, [ebp - 0x68]
call fcn.1003f96c
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x10072c4c
inc eax
mov dword [ebp - 0x18], eax
jmp 0x10073167
cmp dword [ebp - 0x10], 0
je 0x10072ca9
push edi
call fcn.100a0afd
test edx, edx
pop ecx
mov esi, eax
jg 0x10072ca9
jl 0x10072c71
cmp esi, 0x1000000
ja 0x10072ca9
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x68]
call fcn.10045ff1
push 0
lea eax, [ebp - 0x5c]
push eax
push esi
push dword [ebp - 0x68]
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
push ebx
push dword [ebp - 0x80]
push edi
call fcn.10040d01
push esi
push dword [ebp - 0x68]
call fcn.10057670
add esp, 0x18
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
xor edi, edi
cmp eax, edi
mov dword [ebp - 0x10], eax
jne 0x10072cc3
mov dword [ebp - 0x18], 6
jmp 0x1007314f
push edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x5c], 0x186a0
mov dword [ebp - 0x58], edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp byte [ebp - 2], 3
jne 0x10072e42
mov eax, dword [ebp - 0x50]
xor esi, esi
or eax, dword [ebp - 0x4c]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0xc], 1
jne 0x10072cfc
mov dword [ebp - 0xc], 0x40000
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0xc]
lea eax, [eax + esi + 1]
push eax
lea ecx, [ebp - 0x28]
call fcn.10045ff1
mov ebx, dword [ebp - 0x28]
and dword [ebp - 0x48], 0
and dword [ebp - 0x44], 0
push 0
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0xc]
lea edi, [esi + ebx]
push edi
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x20], eax
xor eax, eax
cmp dword [ebp - 0x44], eax
jl 0x10072d4f
jg 0x10072d44
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0xc]
jbe 0x10072d4f
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x48]
or eax, dword [ebp - 0x44]
jne 0x10072d80
cmp dword [ebp - 0x20], 0
jne 0x10072dc6
cmp byte [ebp - 1], 2
jne 0x10072d6e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x10072dd3
add dword [ebp - 0x5c], 0xffffffff
adc dword [ebp - 0x58], 0xffffffff
js 0x10072dda
jg 0x10072d80
cmp dword [ebp - 0x5c], 0
jb 0x10072dda
add esi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
or ecx, dword [ebp - 0x4c]
movsx ax, byte [edi]
mov byte [esi + ebx], 0
je 0x10072cff
cmp dword [ebp - 0x20], 0
je 0x10072cff
cmp ax, 0xa
jne 0x10072cff
add dword [ebp - 0x3c], 0xffffffff
adc dword [ebp - 0x38], 0xffffffff
js 0x10072dda
jg 0x10072cff
cmp dword [ebp - 0x3c], 0
jbe 0x10072dda
jmp 0x10072cff
test esi, esi
jne 0x10072dda
mov dword [ebp - 0x18], 0x26
jmp 0x10072dda
mov dword [ebp - 0x18], 0x6d
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x28]
call fcn.1004d681
mov ecx, dword [ebp - 0x34]
push eax
push dword [ebp - 0x30]
call fcn.100457c2
mov ecx, esi
call fcn.1003f96c
lea ecx, [ebp - 0x6c]
call fcn.10002d56
lea ecx, [ebp - 0x1c]
call fcn.1003f96c
mov ebx, dword [ebp - 0x18]
lea ecx, [ebp - 0x68]
call fcn.1003f96c
lea ecx, [ebp - 0x24]
call fcn.1003f96c
lea ecx, [ebp - 0x74]
call fcn.1003f96c
lea ecx, [ebp - 0x78]
call fcn.10002d56
lea ecx, [ebp - 0x30]
call fcn.1003f96c
lea ecx, [ebp - 0x40]
call fcn.1003f96c
mov eax, ebx
jmp 0x100731a0
cmp byte [ebp - 2], 0
je 0x10072eff
mov eax, dword [ebp - 0x20]
cmp eax, edi
jne 0x10072e58
mov eax, 0x100c78c2
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x44]
call fcn.10050221
mov bl, byte [ebp - 0x2c]
lea ecx, [ebp - 0x10]
and bl, 0xf3
call fcn.10046123
mov byte [ebp - 0x20], bl
or byte [ebp - 0x20], 1
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x20]
lea eax, [ebp - 0x10]
push dword [ebp - 8]
push eax
push dword [ebp - 0x28]
call fcn.1004d48a
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x10072eaa
cmp byte [ebp - 1], 2
jne 0x10072eaa
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x6d
pop ecx
cmp eax, ecx
je 0x10072ed8
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x10]
call fcn.1004d681
push eax
lea ecx, [ebp - 0x24]
add edi, ebx
call fcn.1004618f
mov eax, dword [ebp - 0x10]
and word [eax], 0
test ebx, ebx
je 0x10072edd
push dword [ebp - 0x44]
lea ecx, [ebp - 0x24]
call fcn.1004618f
jmp 0x10072e78
mov dword [ebp - 0x18], ecx
jmp 0x10072ee8
test edi, edi
jne 0x10072ee8
mov dword [ebp - 0x18], 0x26
lea ecx, [ebp - 0x10]
mov dword [ebp - 8], 0x4b0
call fcn.1003f96c
lea ecx, [ebp - 0x44]
jmp 0x1007313c
mov esi, dword [ebp - 0x4c]
cmp esi, edi
jg 0x10072f83
jl 0x10072f0d
cmp dword [ebp - 0x50], edi
jae 0x10072f83
xor esi, esi
xor ebx, ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
push dword [ebp - 8]
push eax
push dword [ebp - 0x28]
call fcn.1004d48a
add esp, 0x14
cmp eax, edi
je 0x10072f35
add esi, 1
adc ebx, edi
jmp 0x10072f11
cmp byte [ebp - 1], 2
jne 0x10072f4d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x6d
pop ecx
cmp eax, ecx
jne 0x10072f4d
mov dword [ebp - 0x18], ecx
jmp 0x10072f5a
mov eax, esi
or eax, ebx
jne 0x10072f5a
mov dword [ebp - 0x18], 0x26
push 0x20
lea ecx, [ebp - 0x24]
mov dword [ebp - 8], 0x4b0
call fcn.10045ff1
push ebx
push esi
push 0x100c72f0
push dword [ebp - 0x24]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x10073141
mov eax, dword [ebp - 0x50]
xor ebx, ebx
or eax, esi
jne 0x10072fdc
mov bl, byte [ebp - 0x2c]
or ebx, 1
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xc]
push eax
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
call fcn.1004d48a
add esp, 0x14
test eax, eax
jne 0x10072f92
cmp byte [ebp - 1], 2
jne 0x10073141
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x6d
pop ecx
cmp eax, ecx
jne 0x10073141
mov dword [ebp - 0x18], ecx
jmp 0x10073141
xor edi, edi
inc edi
test esi, esi
jl 0x10073044
jg 0x10072fea
cmp dword [ebp - 0x50], edi
jbe 0x10073044
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
push dword [ebp - 8]
push eax
push dword [ebp - 0x28]
call fcn.1004d48a
add esp, 0x14
test eax, eax
je 0x1007301a
add edi, 1
adc ebx, 0
cmp ebx, esi
jg 0x10073044
jl 0x10072fea
cmp edi, dword [ebp - 0x50]
jae 0x10073044
jmp 0x10072fea
cmp byte [ebp - 1], 2
jne 0x10073032
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x6d
pop ecx
cmp eax, ecx
jne 0x10073032
mov dword [ebp - 0x18], ecx
jmp 0x10073044
test ebx, ebx
jg 0x10073044
jl 0x1007303d
cmp edi, 1
ja 0x10073044
mov dword [ebp - 0x18], 0x26
mov edi, dword [ebp - 0x3c]
cmp edi, 1
mov eax, dword [ebp - 0x24]
mov byte [eax], 0
jne 0x10073083
cmp dword [ebp - 0x38], 0
jne 0x10073083
lea eax, [ebp - 0xc]
push eax
xor eax, eax
mov al, byte [ebp - 0x2c]
or eax, edi
push eax
push dword [ebp - 8]
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x28]
call fcn.1004d48a
add esp, 0x14
test eax, eax
jne 0x10073141
jmp 0x10072fb9
lea ecx, [ebp - 0x10]
call fcn.10046123
xor esi, esi
mov ebx, edi
inc esi
test ebx, ebx
je 0x100730ab
add edi, 0xffffffff
adc dword [ebp - 0x38], 0xffffffff
js 0x10073132
jg 0x100730ab
test edi, edi
jb 0x10073132
mov eax, dword [ebp - 0x10]
and word [eax], 0
lea eax, [ebp - 0xc]
push eax
xor eax, eax
mov al, byte [ebp - 0x2c]
or eax, 1
push eax
push dword [ebp - 8]
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call fcn.1004d48a
add esp, 0x14
test eax, eax
je 0x1007310f
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x10]
call fcn.1004d681
push eax
lea ecx, [ebp - 0x24]
xor esi, esi
call fcn.1004618f
test ebx, ebx
je 0x100730fa
cmp dword [ebp - 0x38], esi
jl 0x10073132
jg 0x100730fa
test edi, edi
jbe 0x10073132
cmp byte [ebp - 0x51], 0
jne 0x10073090
push 0x100c7100
lea ecx, [ebp - 0x24]
call fcn.1004618f
jmp 0x10073090
cmp byte [ebp - 1], 2
jne 0x10073127
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x6d
pop ecx
cmp eax, ecx
jne 0x10073127
mov dword [ebp - 0x18], ecx
jmp 0x10073132
test esi, esi
je 0x10073132
mov dword [ebp - 0x18], 0x26
mov dword [ebp - 8], 0x4b0
lea ecx, [ebp - 0x10]
call fcn.1003f96c
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x24]
call fcn.1004d681
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x6c]
call fcn.10002d56
lea ecx, [ebp - 0x1c]
call fcn.1003f96c
lea ecx, [ebp - 0x68]
call fcn.1003f96c
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
push dword [ebp - 0x30]
call fcn.100457c2
lea ecx, [ebp - 0x24]
call fcn.1003f96c
lea ecx, [ebp - 0x74]
call fcn.1003f96c
lea ecx, [ebp - 0x78]
call fcn.10002d56
lea ecx, [ebp - 0x30]
call fcn.1003f96c
lea ecx, [ebp - 0x40]
call fcn.1003f96c
mov eax, dword [ebp - 0x18]
pop edi
pop esi
pop ebx
leave
ret 8