Function at 0x1003b971
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
mov eax, edx
mov dword [ebp - 0x2c], ecx
push ebx
push esi
push edi
cmp byte [eax], 0x50
mov dword [ebp - 0x18], eax
jne 0x1003c240
cmp byte [eax + 1], 0x4b
jne 0x1003c240
mov dword [ebp - 4], 0xfffffffa
xor ebx, ebx
mov dword [ebp - 0xc], 0x2906c902
mov dword [ebp - 0x24], 0xb06d673c
push 1
mov dword [ebp - 0x20], 0x65e429b0
mov dword [ebp - 8], ebx
pop edi
jmp 0x1003b9cb
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xd4], edi
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1003b9be
push 0xfffffffffffffffb
pop ecx
push 3
mov dword [ebp - 4], 0x1d
pop esi
jmp 0x1003bbd1
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x10], ebx
jmp 0x1003ba0a
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x54], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x1003ba00
mov dword [ebp - 0x10], ebx
jmp 0x1003ba21
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x9c], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1003ba14
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1003ba37
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
mov dword [ebp - 0x4c], ebx
jmp 0x1003bbc1
mov dword [ebp - 0x74], 0xb4ef66b
mov dword [ebp - 0x70], 0xb4ef66b
mov dword [ebp - 0x6c], 0xb4ef66b
mov dword [ebp - 0x68], 0xb4ef66b
mov dword [ebp - 8], 0x423637b3
mov dword [ebp - 0x30], 0xfffffff8
cmp dword [ebp - 4], ebx
je 0x1003ba75
mov ecx, edi
cmp dword [ebp - 8], ebx
jne 0x1003ba77
mov ecx, ebx
mov eax, dword [ebp - 0xd4]
sub ecx, eax
mov eax, dword [ebp - 0x9c]
add eax, ecx
je 0x1003ba8f
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xd4], edi
xor edx, edx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x98]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
dec dword [ebp - 0x6c]
mov eax, dword [ebp - 8]
cmp eax, 0x21eb
mov eax, dword [ebp - 8]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
imul eax, ecx, 9
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 0x15
cmp dword [ebp - 0xc], 0x1d
jle 0x1003bbbe
mov eax, 0x3a09
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x10], 0x618d7c58
mov dword [ebp - 0x10], ebx
jmp 0x1003bb12
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xdc], 0x8eaf5359
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1003bb01
mov eax, dword [ebp - 0xb0]
xor edx, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov eax, dword [ebp - 0xc]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x30]
cmp ecx, dword [ebp - 8]
jle 0x1003bb4c
mov eax, dword [ebp - 0x98]
mov eax, dword [ebp - 0x6c]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xb0]
cmp eax, ecx
mov eax, dword [ebp - 0x20]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0xc]
push 0
setg bl
xor ecx, ecx
sub ebx, eax
mov dword [ebp - 0xd4], ebx
mov eax, dword [ebp - 4]
cmp eax, ebx
mov eax, dword [ebp - 0x6c]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
pop ebx
setge dl
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
sub ecx, dword [ebp - 0x4c]
test ecx, ecx
setle al
mov dword [ebp - 0xdc], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x1d
jg 0x1003bad8
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xffffffe2
jle 0x1003ba3f
dec dword [ebp - 4]
push 0xfffffffffffffffb
pop ecx
cmp dword [ebp - 4], 0xffffffe5
je 0x1003b9e3
mov dword [ebp - 4], ebx
jmp 0x1003bc1a
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0xd4], ebx
jne 0x1003bc1f
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1003bc17
push ebx
push ebx
push ebx
push 0x15df
push 0x511
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentExPointA]
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jle 0x1003bbe0
mov dword [ebp - 8], 0xc099a567
mov dword [ebp - 0x30], edi
mov dword [ebp - 4], ebx
jmp 0x1003bc3c
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x28], 0xcf57
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x1003bc2e
push 0xffffffffffffffff
mov dword [ebp - 4], ebx
pop esi
jmp 0x1003bc56
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xf4], esi
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x1003bc49
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
sub ecx, 0xffff
neg ecx
sbb ecx, ecx
neg eax
inc ecx
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x28]
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], ebx
jne 0x1003bc95
mov edx, ebx
cmp dword [ebp - 0x28], ebx
je 0x1003bc97
mov edx, edi
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x28]
push 7
setl cl
sub ecx, eax
xor eax, eax
cmp ecx, 0xa0c0e075
pop ecx
setne al
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
neg eax
sbb eax, eax
inc eax
inc edx
sub edx, eax
mov eax, dword [ebp - 0x28]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setg cl
mov dword [ebp - 0xe8], ecx
mov al, byte [eax + 2]
mov dword [ebp - 4], 0x61f9
mov dword [ebp - 0x2c], 0xd2466e9f
mov dword [ebp - 0x2c], 0xa11600d5
mov dword [ebp - 0x2c], 0xa14c5530
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x2c], 0x77cccaea
mov dword [ebp - 8], edi
mov dword [ebp - 0x2c], 0xda99da97
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x11], al
mov dword [ebp - 0xc], ebx
jmp 0x1003bd38
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x88], 6
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x1003bd27
cmp dword [ebp - 4], ebx
je 0x1003bd7b
mov dword [ebp - 0xc], 0x7e4fc22
mov dword [ebp - 4], 0xffffffe4
jmp 0x1003bd70
mov dword [ebp - 8], 0xf37d
inc dword [ebp - 8]
mov dword [ebp - 8], ebx
jmp 0x1003bd67
inc dword [ebp - 0xc]
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x10
jl 0x1003bd61
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x32
jg 0x1003bd52
jmp 0x1003be87
mov dword [ebp - 0x30], 0x5b1b6fd4
mov dword [ebp - 0x24], 0x3b4709ba
mov dword [ebp - 0xc], 0x5f40e13f
mov dword [ebp - 0x2c], 0xfffffff7
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], ebx
jmp 0x1003bdb0
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xa4], 0x872d9ee1
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x1003bd9f
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], edi
jg 0x1003be76
mov dword [ebp - 0x2c], 0x5145ccb9
xor edx, edx
mov dword [ebp - 0x2c], 0x7289fff1
mov dword [ebp - 0x34], 0xafb5d1cb
mov dword [ebp - 0x20], 0xfffffff8
mov eax, dword [ebp - 0x30]
cmp eax, 0xfffffffd
mov eax, dword [ebp - 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, 0x659baaa4
setge al
sub eax, dword [ebp - 8]
neg eax
sbb eax, eax
inc eax
imul esi, eax, 9
neg esi
sbb esi, esi
xor edx, edx
neg esi
inc dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0xa4]
mov eax, dword [ebp - 0x10]
cmp eax, ecx
mov eax, dword [ebp - 0x34]
setg dl
add eax, 0xd800
xor ecx, ecx
cmp eax, esi
setge cl
xor eax, eax
imul edx, ecx
cmp edx, 0x1d12
setge al
xor ecx, ecx
cmp eax, 0x21dd
mov eax, dword [ebp - 4]
setne cl
mov dword [ebp + eax*4 - 0xa4], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jle 0x1003bdc2
or esi, 0xffffffff
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1003be87
push ebx
push ebx
call dword [sym.imp.USER32.dll_LoadMenuW]
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], ebx
jl 0x1003bea0
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x88], ebx
jne 0x1003bea0
dec dword [ebp - 8]
jns 0x1003be8f
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 3]
mov dword [ebp - 0xc], 6
mov dword [ebp - 8], 0xfffffff9
mov dword [ebp - 4], ebx
mov dword [ebp - 0x20], 0x1497ea9b
mov byte [ebp - 0x19], al
movzx eax, byte [ebp - 0x11]
mov dword [ebp - 0x20], 0xc7819afc
add eax, 4
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], ebx
jmp 0x1003beeb
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x80], esi
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x1003bee1
mov dword [ebp - 4], ebx
jmp 0x1003bf07
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xe4], 0x1ef224b3
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x1003bef6
dec dword [ebp - 8]
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x80]
mov esi, dword [ebp - 0xc]
sub ecx, eax
mov eax, dword [ebp - 8]
neg ecx
sbb ecx, ecx
inc ecx
add esi, ecx
mov ecx, dword [ebp - 0xc]
neg esi
sbb esi, esi
sub ecx, eax
mov dword [ebp - 4], ecx
xor edx, edx
mov ecx, dword [ebp - 0x80]
neg esi
mov eax, dword [ebp - 4]
cmp ecx, eax
setle dl
add edx, esi
je 0x1003bfbe
mov dword [ebp - 4], 0xd872
mov dword [ebp - 0x34], 0x2932384b
mov dword [ebp - 8], ebx
jmp 0x1003bfb3
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], 0xb090aec5
cmp dword [ebp - 0x7c], ebx
je 0x1003bf71
mov edx, edi
cmp dword [ebp - 4], ebx
jne 0x1003bf73
mov edx, ebx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 8]
setl cl
xor edx, edx
add ecx, 0xd0294e
mov eax, dword [ebp + eax*4 - 0x80]
cmp ecx, 7
setg dl
xor ecx, ecx
cmp eax, edx
mov eax, 0x7605e7c7
setg cl
sub eax, ecx
add eax, dword [ebp - 0xc]
inc dword [ebp - 0xc]
test eax, eax
mov eax, edi
cmove eax, ebx
mov dword [ebp - 0x34], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jle 0x1003bf5b
jmp 0x1003c074
mov dword [ebp - 8], 0xcdcec458
or esi, 0xffffffff
mov dword [ebp - 0x10], 0x9b7b3fa8
mov ecx, 0xd75f053d
mov eax, dword [ebp - 0x80]
sub esi, eax
mov dword [ebp - 0x78], esi
mov eax, dword [ebp - 8]
imul eax, esi
mov dword [ebp - 0xe4], eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp edi, eax
sbb eax, eax
neg eax
cmp ecx, eax
mov eax, dword [ebp - 0xc]
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, edx
setge cl
cmp ecx, 4
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
cmp ecx, eax
setl dl
imul eax, edx, 0x46b8
sub eax, dword [ebp - 0x10]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
sub edx, 0xbc79a46b
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setne cl
imul eax, ecx, 0x31ec
sub eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
dec edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
movzx esi, byte [ebp - 0x19]
add esi, 0x18
add esi, ecx
mov edx, dword [ecx + eax]
mov ecx, dword [ecx + eax + 0x14]
call fcn.1003b965
mov ecx, eax
mov dword [ebp - 8], 0x7632667a
mov eax, dword [ebp - 0x18]
add eax, esi
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ebx
jmp 0x1003c0b9
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x104], 0xfffffffb
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1003c0a8
mov dword [ebp - 8], 3
cmp dword [ebp - 8], ebx
jl 0x1003c0ec
cmp dword [ebp - 0xfc], ebx
jne 0x1003c0e9
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1003c0e4
push ebx
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
dec dword [ebp - 8]
jns 0x1003c0cb
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x18]
mov dword [eax], ecx
shr ecx, 2
inc ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + esi]
mov dword [ebp - 0xc4], eax
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0xc0], eax
mov eax, dword [ecx + esi + 8]
mov dword [ebp - 0xbc], eax
mov eax, dword [ecx + esi + 0xc]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x2c], 4
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1003c140
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1003c156
push 0x21a2
push ebx
push ebx
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
cmp dword [ebp - 4], 0
mov edx, ebx
mov dword [ebp - 8], ebx
jbe 0x1003c482
sub esi, dword [ebp - 0xc]
mov dword [ebp - 0x20], 0x9c3fbb4e
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x18], 0xfffffffa
mov dword [ebp - 0x24], 0xfd06bde6
mov dword [ebp - 0x34], 0x18461e70
mov dword [ebp - 0x30], 0xfffffff8
mov dword [ebp - 0x18], ebx
jmp 0x1003c1a1
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x40], 9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1003c193
cmp dword [ebp - 0x40], ebx
jne 0x1003c1b3
mov ecx, ebx
cmp dword [ebp - 0x20], ebx
je 0x1003c1b5
mov ecx, edi
mov eax, dword [ebp - 0x40]
imul eax, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x40], 0xfffc
mov eax, dword [ebp - 0x40]
sbb ecx, ecx
neg ecx
imul eax, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jl 0x1003c1fa
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x34], ebx
je 0x1003c1fd
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xc]
setl cl
and edx, 3
mov dword [ebp - 0x30], ecx
mov ecx, dword [eax]
mov edx, dword [ebp + edx*4 - 0xc4]
call fcn.1003b965
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov dword [esi + ecx], eax
add ecx, 4
inc edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
cmp edx, dword [ebp - 4]
jb 0x1003c168
jmp 0x1003c482
xor edi, edi
mov eax, 0x35a60c4
inc edi
xor ebx, ebx
mov dword [ebp - 4], edi
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 8], ebx
mov dword [ebp - 0x34], 0x426c
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x18], ebx
jmp 0x1003c27f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x48], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1003c275
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], 0xffffffee
jle 0x1003c47d
or esi, 0xffffffff
mov dword [ebp - 0x10], 0x5e1f
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 4], ebx
jne 0x1003c2b3
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 4], eax
jl 0x1003c2af
mov eax, dword [ebp - 4]
mov ecx, ebx
jmp 0x1003c2b5
mov ecx, edi
mov eax, dword [ebp - 0x10]
sub ecx, eax
add ecx, 0x5f2fe72d
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], ebx
jmp 0x1003c464
mov dword [ebp - 0x18], 0xbc130268
xor edx, edx
mov dword [ebp - 0x58], ebx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
test eax, eax
mov eax, dword [ebp - 4]
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
sub ecx, 0x259c42fa
jne 0x1003c2f7
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
xor edx, edx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
cmp eax, ecx
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
add ecx, 7
jne 0x1003c331
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x48], esi
mov eax, dword [ebp - 0x34]
imul eax, dword [ebp - 4]
test eax, eax
je 0x1003c406
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], 0x866ca241
mov dword [ebp - 0x20], 0x9515b845
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x48]
cmp dword [ebp - 0x18], ebx
je 0x1003c36d
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
xor edx, edx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
cmp eax, ecx
setl dl
sub edx, 0xf00d
mov dword [ebp - 0x20], edx
xor edx, edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x48]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x30]
cmp eax, ecx
setl dl
add edx, 0xcc6c
sub edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
mov eax, dword [ebp - 0x10]
setg cl
xor edx, edx
cmp ecx, 0x8654
mov eax, dword [ebp + eax*4 - 0x48]
setle dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x10]
setl bl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x48]
cmp ebx, eax
mov eax, dword [ebp - 0x10]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0xc]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
xor ebx, ebx
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
jmp 0x1003c461
mov dword [ebp - 0x24], 0xbbe7
mov dword [ebp - 8], ebx
jmp 0x1003c458
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + eax*4 - 0x5c]
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x60], ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + eax*4 - 0x64]
mov eax, dword [ebp - 8]
sub ecx, dword [ebp + eax*4 - 0x64]
je 0x1003c44b
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1003c455
push 0x21a2
push ebx
push ebx
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
jmp 0x1003c455
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x64], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jle 0x1003c412
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jle 0x1003c2cb
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xffffffee
jg 0x1003c295
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp + 8]
mov dword [eax], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret