Function at 0x4610b2
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
mov bx, word [esi]
push edi
mov dword [ebp - 0x10], ecx
mov byte [ebp - 2], 0
mov byte [ebp - 1], 0
mov dword [ebp - 8], 0xffff0000
mov eax, ebx
call fcn.004820ac
test al, al
mov edi, 0x4b0
je 0x4610ee
and dword [ebp - 8], 0
jmp 0x461204
push 4
push esi
push str._UNI
call fcn.00438a4a
add esp, 0xc
test al, al
je 0x46110a
mov dword [ebp - 8], edi
jmp 0x461204
push 8
push esi
push str._UNICODE
call fcn.00438a4a
add esp, 0xc
test al, al
jne 0x461102
push 5
pop edi
push edi
push esi
push str._UNIB
call fcn.00438a4a
add esp, 0xc
test al, al
je 0x461140
mov dword [ebp - 8], 0x4b1
jmp 0x461204
push 9
push esi
push str._UNICODEB
call fcn.00438a4a
add esp, 0xc
test al, al
jne 0x461134
push edi
push esi
push str._ANSI
call fcn.00438a4a
add esp, 0xc
test al, al
jne 0x4610e5
push 4
push esi
push str._GBK
call fcn.00438a4a
add esp, 0xc
test al, al
je 0x461188
mov dword [ebp - 8], 0x3a8
jmp 0x461204
push edi
push esi
push str._BIG5
call fcn.00438a4a
add esp, 0xc
test al, al
je 0x4611a4
mov dword [ebp - 8], 0x3b6
jmp 0x461204
push edi
push esi
push str._UTF8
call fcn.00438a4a
add esp, 0xc
test al, al
je 0x4611c0
mov dword [ebp - 8], 0xfde9
jmp 0x461204
push edi
push esi
push str._UTF7
call fcn.00438a4a
add esp, 0xc
test al, al
je 0x4611dc
mov dword [ebp - 8], 0xfde8
jmp 0x461204
cmp bx, 0x2d
jne 0x461204
xor eax, eax
add esi, 2
mov ax, word [esi]
push eax
call fcn.00412674
add esp, 4
test al, al
je 0x461204
push esi
mov dword [ebp + 8], esi
call fcn.0043de9a
pop ecx
mov dword [ebp - 8], eax
lea eax, [ebp + 8]
push eax
call fcn.00407fcf
push 4
lea eax, [ebp + 8]
push eax
push str.fix
call fcn.0043f0e5
mov bl, al
add esp, 0x10
neg bl
sbb bl, bl
push 0x4a39d4
lea ecx, [ebp - 0x2c]
and ebx, 2
mov byte [ebp - 0x38], bl
call fcn.00445746
push str.READLINE
lea ecx, [ebp - 0x14]
call fcn.00445746
xor ecx, ecx
push ecx
xor eax, eax
push 0x2c
inc eax
pop edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x4c], eax
push edi
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 8]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.00432fb5
mov esi, dword [ebp - 0x2c]
push esi
push 0x4ad970
mov dword [ebp + 8], eax
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x461304
mov dword [ebp - 0x1c], 1
mov byte [ebp - 2], 1
and dword [ebp - 0x30], 0
lea ecx, [ebp - 0x34]
call fcn.0043d3a5
mov ecx, dword [ebp - 0x10]
push 1
push 0
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call fcn.0044b25d
mov eax, dword [ebp - 0x34]
mov dword [ebp + 8], eax
cmp word [eax], di
jne 0x4613a5
lea ecx, [ebp - 0x28]
call fcn.0043d3a5
add dword [ebp + 8], 2
push edi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fd51
mov esi, dword [ebp - 0x28]
push esi
push 0x4ad96c
mov dword [ebp - 0x24], esi
call fcn.00438ae0
add esp, 0x14
test al, al
je 0x46133d
mov byte [ebp - 1], 2
mov dword [ebp - 0x30], 0x4ad968
jmp 0x46139d
cmp word [esi], 0
je 0x461290
push esi
push 0x4a4b90
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x461290
push esi
push 0x4a4610
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x461294
mov byte [ebp - 2], 2
jmp 0x461294
push esi
push 0x4ad964
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x461354
mov byte [ebp - 1], 3
jmp 0x46139d
push esi
push 0x4a973c
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x461372
mov byte [ebp - 1], 1
mov dword [ebp - 0x30], 0x4ad960
jmp 0x46139d
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004486b7
mov eax, dword [ebp - 0x24]
cmp word [eax], 0x2b
pop ecx
pop ecx
jne 0x46139d
add dword [ebp - 0x24], 2
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004486b7
pop ecx
pop ecx
lea ecx, [ebp - 0x28]
call fcn.00437884
mov eax, dword [ebp + 8]
cmp word [eax], di
jne 0x4613c2
add dword [ebp + 8], 2
push edi
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fd51
add esp, 0xc
mov ecx, dword [ebp - 0x10]
push 0
lea eax, [ebp - 0x14]
push eax
call fcn.00402db0
push 8
lea ecx, [ebp - 0xc]
call fcn.0043d29b
mov esi, dword [ebp - 0xc]
and word [esi], 0
xor edi, edi
inc edi
cmp dword [ebp - 8], 0
mov dword [ebp - 0x28], esi
jl 0x461d0a
lea ecx, [ebp - 0x70]
call fcn.0043d27e
mov eax, dword [ebp - 0x2c]
xor edi, edi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x68], edi
cmp word [eax], 0x75
jne 0x461589
cmp word [eax + 2], 0x64
jne 0x461589
cmp word [eax + 4], 0x3a
jne 0x461589
mov ecx, dword [ebp + 8]
push 0x22
add eax, 6
pop esi
mov word [ecx], di
cmp word [eax], si
mov dword [ebp - 0x28], eax
jne 0x46143d
inc eax
inc eax
mov dword [ebp - 0x28], eax
mov ebx, eax
push 0x3a
lea eax, [ebp - 0x28]
call fcn.0043cf2c
mov eax, dword [ebp - 0x28]
cmp eax, ebx
pop ecx
je 0x46145b
cmp word [eax - 2], si
jne 0x46145b
mov word [eax - 2], di
cmp word [eax], 0x3a
jne 0x461466
mov word [eax], di
inc eax
inc eax
cmp word [eax], si
mov ecx, eax
jne 0x46147f
lea ecx, [eax + 2]
inc eax
inc eax
cmp word [eax], si
jne 0x46147a
mov word [eax], di
cmp word [eax], di
jne 0x461470
push edi
push edi
push 0x10000
push ecx
lea eax, [ebp - 0x70]
push eax
push ebx
call fcn.00435807
mov esi, dword [ebp - 0x6c]
add esp, 0x18
cmp esi, edi
jle 0x4614a8
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
add eax, ecx
mov dword [ebp + 8], eax
jmp 0x4614ab
mov eax, dword [ebp + 8]
movsx edx, byte [eax]
mov ebx, 0xff
xor ecx, ecx
cmp edx, ebx
mov dword [ebp - 0x40], edi
jne 0x4614d1
movsx edi, byte [eax + 1]
cmp edi, 0xfe
jne 0x4614d1
mov dword [ebp - 8], 0x4b0
jmp 0x4614e8
cmp edx, 0xfe
jne 0x4614ec
movsx edi, byte [eax + 1]
cmp edi, ebx
jne 0x4614ec
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x461515
cmp edx, 0xef
jne 0x46151a
movsx edx, byte [eax + 1]
cmp edx, 0xbb
jne 0x46151a
movsx edx, byte [eax + 2]
cmp edx, 0xbf
jne 0x46151a
mov dword [ebp - 8], 0xfde9
push 3
and dword [ebp - 0x40], 0
pop ecx
sub esi, ecx
cmp dword [ebp - 8], 0x4b1
lea ebx, [ecx + eax]
jne 0x461549
and esi, 0xfffffffe
add esi, ebx
cmp ebx, esi
mov ecx, ebx
ja 0x4615c6
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 0x461537
jmp 0x461584
cmp dword [ebp - 8], 0x4b0
je 0x4615c6
mov eax, dword [ebp - 0x70]
and dword [ebp - 0x70], 0
mov dword [ebp - 0x38], eax
lea eax, [esi + esi + 0x20]
push eax
lea ecx, [ebp - 0x70]
call fcn.0043d2c0
push dword [ebp - 8]
lea ecx, [ebp - 0x70]
push esi
push ebx
call fcn.0043d460
mov eax, dword [ebp - 0x70]
lea ecx, [ebp - 0x38]
mov dword [ebp + 8], eax
call fcn.00437884
mov eax, dword [ebp + 8]
jmp 0x4615c6
mov eax, dword [ebp - 0x14]
cmp word [eax], di
jne 0x46159e
lea ecx, [ebp - 0x70]
call fcn.00437884
jmp 0x461d18
cmp byte [ebp - 2], 1
mov eax, dword [ebp + 8]
jne 0x4615b7
cmp word [eax], 0x2c
je 0x4615b7
mov edi, 0x80070057
jmp 0x461d02
inc eax
inc eax
test byte [ebp - 2], 1
mov dword [ebp + 8], eax
je 0x461887
mov edx, dword [ebp - 0x1c]
xor edi, edi
xor ecx, ecx
or edx, ecx
push 0xffffffffffffffff
mov dword [ebp - 0x20], edi
pop ebx
je 0x461626
lea eax, [ebp + 8]
push eax
call fcn.004378b6
mov esi, dword [ebp + 8]
lea eax, [ebp + 8]
push eax
call fcn.00405061
mov eax, dword [ebp + 8]
cmp word [eax], di
pop ecx
pop ecx
je 0x4615fc
mov word [eax], di
mov eax, dword [ebp + 8]
cmp word [esi], di
je 0x461626
mov ecx, dword [ebp - 0x10]
push ebx
push edi
push esi
call fcn.00412ddf
cmp eax, edi
je 0x461623
push ebx
push dword [eax]
lea ecx, [ebp - 0x20]
call fcn.0043d4c9
mov eax, dword [ebp - 0x20]
mov dword [ebp + 8], eax
jmp 0x461626
mov eax, dword [ebp + 8]
cmp byte [ebp - 1], 3
mov dword [ebp - 0x28], eax
jne 0x461635
push eax
jmp 0x461796
cmp byte [ebp - 1], 0
je 0x4616df
cmp byte [ebp - 1], 1
mov ebx, 0x4a733c
je 0x46164f
mov ebx, 0x4a3f24
lea ecx, [ebp - 0x24]
call fcn.0043d3a5
mov eax, dword [ebp + 8]
mov esi, eax
jmp 0x4616a4
cmp cx, 0xd
jne 0x461674
cmp word [eax + 2], 0xa
jne 0x46167a
mov word [eax], di
add dword [ebp + 8], 2
jmp 0x46167d
cmp cx, 0xa
jne 0x46169f
mov word [eax], di
cmp byte [ebp - 1], 0
jne 0x46168c
push ebx
lea ecx, [ebp - 0x24]
call fcn.0043d411
push esi
lea ecx, [ebp - 0x24]
mov byte [ebp - 1], 0
call fcn.0043d411
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 0x46165e
cmp word [esi], di
je 0x4616c9
cmp byte [ebp - 1], 0
jne 0x4616c0
push ebx
lea ecx, [ebp - 0x24]
call fcn.0043d411
push esi
lea ecx, [ebp - 0x24]
call fcn.0043d411
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.0043cc80
lea ecx, [ebp - 0x24]
jmp 0x46186b
mov edx, dword [ebp - 0x50]
cmp edx, edi
jg 0x461755
jl 0x4616ed
cmp dword [ebp - 0x54], edi
jae 0x461755
mov cx, word [eax]
xor esi, esi
xor ebx, ebx
cmp cx, di
je 0x461722
cmp cx, 0xa
jne 0x461704
add esi, 1
adc ebx, edi
inc eax
inc eax
mov dword [ebp + 8], eax
mov cx, word [eax]
cmp cx, di
jne 0x4616f9
cmp eax, dword [ebp - 0x28]
jbe 0x461722
cmp word [eax - 2], 0xa
je 0x461722
add esi, 1
adc ebx, edi
push 0x20
lea ecx, [ebp - 0x28]
call fcn.0043d3c3
push ebx
push esi
push 0x4a4078
push dword [ebp - 0x28]
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x10]
add esp, 0x10
push dword [ebp - 0x28]
push dword [ebp - 0x14]
call fcn.0043cc80
lea ecx, [ebp - 0x28]
jmp 0x46186b
mov esi, dword [ebp - 0x54]
mov ecx, esi
or ecx, edx
jne 0x4617c8
mov dx, word [eax]
cmp dx, di
push 0xa
mov ecx, eax
mov esi, eax
pop ebx
je 0x4617b6
cmp dx, bx
jne 0x461776
mov esi, ecx
mov ecx, eax
inc eax
inc eax
mov dword [ebp + 8], eax
mov dx, word [eax]
cmp dx, di
jne 0x46176d
cmp eax, dword [ebp - 0x28]
jbe 0x4617a6
cmp word [eax - 2], bx
je 0x4617a6
cmp word [ecx], bx
jne 0x461795
inc ecx
inc ecx
push ecx
push dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
call fcn.0043cc80
jmp 0x461870
cmp ecx, dword [ebp - 0x28]
jbe 0x4617b6
lea eax, [ecx - 2]
cmp word [eax], 0xd
jne 0x4617b6
mov ecx, eax
cmp word [esi], bx
jne 0x4617bd
inc esi
inc esi
sub ecx, esi
sar ecx, 1
push ecx
push esi
jmp 0x461852
cmp edx, edi
jl 0x4617f0
jle 0x4617eb
mov cx, word [eax]
cmp cx, di
je 0x4617f0
cmp cx, 0xa
jne 0x4617e0
add esi, ebx
adc edx, ebx
inc eax
inc eax
cmp edx, edi
mov dword [ebp + 8], eax
jg 0x4617ce
jl 0x4617f0
cmp esi, 1
ja 0x4617ce
mov esi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x48]
mov edi, eax
jmp 0x461841
mov ecx, esi
or ecx, ebx
je 0x461812
add dword [ebp - 0x4c], 0xffffffff
adc dword [ebp - 0x48], 0xffffffff
js 0x46184c
jg 0x461812
cmp dword [ebp - 0x4c], 0
jb 0x46184c
lea eax, [ebp + 8]
call fcn.004125a7
mov eax, esi
or eax, ebx
je 0x461828
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x48]
je 0x461849
mov eax, dword [ebp + 8]
cmp word [eax], 0xd
jne 0x461836
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0xa
jne 0x461841
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0
jne 0x4617fa
jmp 0x46184c
mov eax, dword [ebp + 8]
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x30]
call fcn.00445763
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.0043cc80
lea ecx, [ebp - 0x30]
call fcn.00437884
lea ecx, [ebp - 0x20]
call fcn.00437884
lea ecx, [ebp - 0x70]
call fcn.00437884
xor edi, edi
jmp 0x461d18
push 8
lea ecx, [ebp - 0x24]
call fcn.0043d29b
and word [esi], 0
and dword [ebp - 0x18], 0
xor eax, eax
cmp byte [ebp - 2], 2
lea edi, [ebp - 0x58]
stosd dword es:[edi], eax
mov eax, dword [0x4bc310]
mov dword [ebp - 0x5c], eax
jne 0x461972
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x20], eax
xor edi, edi
push edi
mov dword [ebp - 0x44], 0x186a0
mov dword [ebp - 0x40], edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp byte [ebp - 1], 3
jne 0x461a72
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
xor esi, esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x38], eax
mov ebx, 0x40000
lea eax, [esi + 0x40001]
push eax
lea ecx, [ebp - 0x28]
call fcn.0043d2c0
mov edi, dword [ebp - 0x28]
xor eax, eax
push eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x54]
push eax
push ebx
lea eax, [esi + edi]
push eax
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 0x50], 0
jl 0x461927
jg 0x461920
cmp dword [ebp - 0x54], ebx
jbe 0x461927
and dword [ebp - 0x50], 0
mov dword [ebp - 0x54], ebx
mov ecx, dword [ebp - 0x54]
or ecx, dword [ebp - 0x50]
jne 0x461966
test eax, eax
jne 0x461a3f
cmp byte [ebp - 2], 2
jne 0x46194c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x461a3f
add dword [ebp - 0x44], 0xffffffff
adc dword [ebp - 0x40], 0xffffffff
js 0x461a3f
jg 0x461966
cmp dword [ebp - 0x44], 0
jb 0x461a3f
add esi, dword [ebp - 0x54]
mov byte [esi + edi], 0
jmp 0x4618e6
xor esi, esi
push esi
push esi
push 3
push esi
push 7
lea eax, [ebp - 0x18]
push 0x80000000
push dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x20], eax
call fcn.004050ca
cmp dword [ebp - 0x18], esi
je 0x461a32
xor eax, eax
push eax
mov byte [ebp - 0x44], 0
mov byte [ebp - 0x43], 0
mov byte [ebp - 0x42], 0
lea edi, [ebp - 0x41]
stosw word es:[edi], ax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x64]
push eax
push 3
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [ebp - 0x44], 0xff
jne 0x4619db
cmp byte [ebp - 0x43], 0xfe
jne 0x461a0e
mov dword [ebp - 8], 0x4b0
jmp 0x4619ee
cmp byte [ebp - 0x44], 0xfe
jne 0x4619f2
cmp byte [ebp - 0x43], 0xff
jne 0x461a0e
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x461a0d
cmp byte [ebp - 0x44], 0xef
jne 0x461a0e
cmp byte [ebp - 0x43], 0xbb
jne 0x461a0e
cmp byte [ebp - 0x42], 0xbf
jne 0x461a0e
mov dword [ebp - 8], 0xfde9
push 3
pop esi
xor edi, edi
push edi
xor eax, eax
push eax
push esi
push dword [ebp - 0x18]
call fcn.004389fe
add esp, 0x10
cmp edx, edi
jg 0x4618b9
jl 0x461a32
cmp eax, edi
jae 0x4618b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x461cf2
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x28]
call fcn.00443289
mov ecx, dword [ebp - 0x10]
push eax
push dword [ebp - 0x14]
call fcn.0043cc80
mov ecx, esi
call fcn.00437884
lea ecx, [ebp - 0x18]
call fcn.00402b8a
lea ecx, [ebp - 0x24]
call fcn.00437884
jmp 0x461878
cmp byte [ebp - 1], 0
je 0x461b0a
mov eax, dword [ebp - 0x30]
cmp eax, edi
jne 0x461a88
mov eax, 0x4a44be
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x30]
call fcn.0044577c
or ebx, 1
lea ecx, [ebp - 0x28]
call fcn.0043d3a5
cmp byte [ebp - 1], 0
jne 0x461aaf
push dword [ebp - 0x30]
lea ecx, [ebp - 0xc]
call fcn.0043d411
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x20]
mov byte [ebp - 1], 0
call fcn.00442fc2
add esp, 0x10
cmp byte [ebp - 2], 2
mov edi, eax
jne 0x461ad9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x461afa
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x28]
call fcn.00443289
push eax
lea ecx, [ebp - 0xc]
call fcn.0043d411
mov ecx, esi
call fcn.00437884
test edi, edi
je 0x461b02
jmp 0x461a96
lea ecx, [ebp - 0x28]
call fcn.00437884
lea ecx, [ebp - 0x30]
jmp 0x461cd6
cmp dword [ebp - 0x50], edi
jg 0x461b77
jl 0x461b16
cmp dword [ebp - 0x54], edi
jae 0x461b77
xor edi, edi
xor ebx, ebx
push dword [ebp - 0x38]
lea eax, [ebp - 0xc]
push dword [ebp - 8]
push eax
push dword [ebp - 0x20]
call fcn.00442fc2
add esp, 0x10
cmp byte [ebp - 2], 2
mov esi, eax
jne 0x461b42
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x461b4e
test esi, esi
je 0x461b4e
add edi, 1
adc ebx, 0
jmp 0x461b1a
push 0x20
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], 0x4b0
call fcn.0043d2c0
push ebx
push edi
push 0x4a4078
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x461ce2
mov eax, dword [ebp - 0x54]
mov ecx, eax
or ecx, dword [ebp - 0x50]
jne 0x461bc3
or ebx, 1
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x24]
push ebx
push dword [ebp - 8]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x20]
mov dword [ebp - 0xc], ecx
call fcn.00442fc2
add esp, 0x10
cmp byte [ebp - 2], 2
mov esi, eax
jne 0x461bba
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x461ce2
cmp esi, edi
jne 0x461b84
jmp 0x461ce2
xor esi, esi
cmp esi, dword [ebp - 0x50]
mov dword [ebp - 0x44], 1
jg 0x461c1a
jl 0x461bd8
cmp dword [ebp - 0x44], eax
jae 0x461c1a
push dword [ebp - 0x38]
lea eax, [ebp - 0xc]
push dword [ebp - 8]
push eax
push dword [ebp - 0x20]
call fcn.00442fc2
add esp, 0x10
cmp byte [ebp - 2], 2
mov edi, eax
jne 0x461c00
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x461c1a
test edi, edi
je 0x461c1a
add dword [ebp - 0x44], 1
adc esi, 0
cmp esi, dword [ebp - 0x50]
jl 0x461bd8
jg 0x461c1a
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x54]
jb 0x461bd8
mov edi, dword [ebp - 0x4c]
cmp edi, 1
mov eax, dword [ebp - 0xc]
mov byte [eax], 0
jne 0x461c45
cmp dword [ebp - 0x48], 0
jne 0x461c45
or ebx, edi
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x20]
call fcn.00442fc2
jmp 0x461b6f
lea ecx, [ebp - 0x28]
call fcn.0043d3a5
test edi, edi
je 0x461c63
add dword [ebp - 0x4c], 0xffffffff
adc dword [ebp - 0x48], 0xffffffff
js 0x461cd3
jg 0x461c63
cmp dword [ebp - 0x4c], 0
jb 0x461cd3
mov eax, dword [ebp - 0x28]
and word [eax], 0
xor eax, eax
mov al, bl
or eax, 1
push eax
push dword [ebp - 8]
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x20]
call fcn.00442fc2
add esp, 0x10
cmp byte [ebp - 2], 2
mov esi, eax
jne 0x461c97
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x461cd3
test esi, esi
je 0x461cd3
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x28]
call fcn.00443289
push eax
lea ecx, [ebp - 0xc]
call fcn.0043d411
test edi, edi
je 0x461cc1
cmp dword [ebp - 0x48], 0
jl 0x461cd3
jg 0x461cc1
cmp dword [ebp - 0x4c], 0
jbe 0x461cd3
push 0x4a3f24
lea ecx, [ebp - 0xc]
call fcn.0043d411
jmp 0x461c4d
lea ecx, [ebp - 0x28]
mov dword [ebp - 8], 0x4b0
call fcn.00437884
mov eax, dword [ebp - 8]
lea esi, [ebp - 0xc]
call fcn.00443289
mov dword [ebp - 0x28], eax
xor edi, edi
lea ecx, [ebp - 0x18]
call fcn.00402b8a
lea ecx, [ebp - 0x24]
call fcn.00437884
lea ecx, [ebp - 0x70]
call fcn.00437884
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.0043cc80
lea ecx, [ebp - 0xc]
call fcn.00437884
lea ecx, [ebp - 0x34]
call fcn.00437884
lea ecx, [ebp - 0x3c]
call fcn.00402b8a
lea ecx, [ebp - 0x14]
call fcn.00437884
lea ecx, [ebp - 0x2c]
call fcn.00437884
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 8