Function at 0x100149a0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x80
push ebx
push esi
push 0x7c
lea eax, [esp + 0x10]
push 0
push eax
call fcn.10048620
mov ebx, dword [esp + 0x98]
push ebx
call fcn.1000e010
add esp, 0x10
push 0
push 0x21
lea ecx, [esp + 0x14]
push ecx
push 0
push ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x808
call dword [0x10083abc]
mov esi, eax
test esi, esi
je 0x1001428d
push 0x73
push esi
call fcn.100240b0
add esp, 4
push eax
push esi
push str.TextureHigh:_Lock_ERROR_res_x__s__at__d_n
call fcn.10025250
add esp, 0x10
pop esi
pop ebx
add esp, 0x80
ret
test dword [esp + 0x74], 0x1000
je 0x1001442c
push ebx
mov ecx, 0x10087220
call fcn.1002c2a0
test eax, eax
jne 0x1001442c
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x60]
push ebp
push edi
push edx
push eax
push ecx
push ebx
push str.TextureHigh:_lpdds_x_BitCount_d_size__dx_d__n
call fcn.10025250
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
add esp, 0x14
mov dword [esp + 0x10], ebp
cmp eax, 8
je 0x10014467
cmp eax, 0x10
je 0x10014382
cmp eax, 0x20
jne 0x1001442a
call fcn.100485f1
xor edx, edx
test ebp, ebp
jle 0x10014321
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
imul ecx, edx
sar ecx, 2
lea edi, [edi + ecx*4]
test esi, esi
jle 0x1001431c
mov ecx, esi
rep stosd dword es:[edi], eax
inc edx
cmp edx, ebp
jl 0x10014303
xor edx, edx
test ebp, ebp
jle 0x1001442a
jmp 0x10014330
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
imul eax, edx
sar eax, 2
lea edi, [ecx + eax*4]
xor eax, eax
test esi, esi
jle 0x1001435e
jmp 0x10014350
mov dword [edi + eax*4], 0
add eax, 0x10
cmp eax, esi
jl 0x10014350
mov eax, edx
and eax, 0x8000000f
jns 0x1001436c
dec eax
or eax, 0xfffffff0
inc eax
jne 0x10014378
test esi, esi
jle 0x10014378
mov ecx, esi
xor eax, eax
rep stosd dword es:[edi], eax
inc edx
cmp edx, ebp
jl 0x10014330
jmp 0x1001442a
call fcn.100485f1
mov ebx, eax
and ebx, 0x7fff
xor edx, edx
test ebp, ebp
jle 0x100143c9
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
imul ecx, edx
sar ecx, 1
lea edi, [eax + ecx*2]
test esi, esi
jle 0x100143c4
mov eax, ebx
movzx ebp, ax
mov eax, ebp
shl ebp, 0x10
or eax, ebp
mov ebp, dword [esp + 0x10]
mov ecx, esi
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
inc edx
cmp edx, ebp
jl 0x10014395
xor edx, edx
test ebp, ebp
jle 0x10014423
nop
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
imul ecx, edx
sar ecx, 1
lea edi, [eax + ecx*2]
xor eax, eax
test esi, esi
jle 0x100143f3
xor ecx, ecx
mov word [edi + eax*2], cx
add eax, 0x10
cmp eax, esi
jl 0x100143e6
mov eax, edx
and eax, 0x8000000f
jns 0x10014401
dec eax
or eax, 0xfffffff0
inc eax
jne 0x1001441e
test esi, esi
jle 0x1001441e
xor eax, eax
movzx ebx, ax
mov eax, ebx
shl ebx, 0x10
or eax, ebx
mov ecx, esi
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
inc edx
cmp edx, ebp
jl 0x100143d0
mov ebx, dword [esp + 0x94]
pop edi
pop ebp
push 0
push ebx
push ebx
call fcn.1000daa0
add esp, 4
call eax
mov esi, eax
test esi, esi
je 0x1001445e
push 0xaf
push esi
call fcn.100240b0
add esp, 4
push eax
push esi
push ebx
push str.TextureHigh:_Unlock_ERROR_lpdds_x_res_x__s__at__d_n
call fcn.10025250
add esp, 0x14
pop esi
pop ebx
add esp, 0x80
ret
call fcn.100485f1
xor edi, edi
mov byte [esp + 0x10], al
test ebp, ebp
jle 0x100144a6
mov ebx, dword [esp + 0x10]
lea ebx, [ebx]
mov eax, dword [esp + 0x24]
imul eax, edi
add eax, dword [esp + 0x38]
test esi, esi
jle 0x1001449a
push esi
push ebx
push eax
call fcn.10048620
add esp, 0xc
inc edi
cmp edi, ebp
jl 0x10014480
mov ebx, dword [esp + 0x94]
xor edi, edi
test ebp, ebp
jle 0x1001442a
mov eax, dword [esp + 0x24]
imul eax, edi
add eax, dword [esp + 0x38]
xor ecx, ecx
test esi, esi
jle 0x100144cc
mov byte [ecx + eax], 0
add ecx, 0x10
cmp ecx, esi
jl 0x100144c1
mov ecx, edi
and ecx, 0x8000000f
jns 0x100144db
dec ecx
or ecx, 0xfffffff0
inc ecx
jne 0x100144ed
test esi, esi
jle 0x100144ed
push esi
push 0
push eax
call fcn.10048620
add esp, 0xc
inc edi
cmp edi, ebp
jl 0x100144b0
jmp 0x1001442a
sub esp, 0x308
mov eax, dword [0x10082594]
xor eax, esp
mov dword [esp + 0x304], eax
cmp dword [0x100802cc], 0
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x10], ebx
je 0x10014611
call fcn.10025010
push eax
lea eax, [esp + 0x110]
push str._sdxwnd.ini
push eax
call fcn.10047c21
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
add esp, 0xc
lea ecx, [esp + 0x10c]
push ecx
push 0
push str.MinTexX
push str.Texture
call esi
lea edx, [esp + 0x10c]
push edx
push 0
push str.MaxTexX
push str.Texture
mov dword [0x100845d0], eax
call esi
mov dword [0x100845cc], eax
lea eax, [esp + 0x10c]
push eax
push 0
push str.MinTexY
push str.Texture
call esi
lea ecx, [esp + 0x10c]
push ecx
push 0
push str.MaxTexY
push str.Texture
mov dword [0x100845c8], eax
call esi
mov edx, dword [0x100845cc]
mov ecx, dword [0x100845d0]
push eax
push edx
mov dword [0x100845c4], eax
mov eax, dword [0x100845c8]
push eax
push ecx
push str.TextureDump:_size_min__dx_d__max__dx_d__n
call fcn.10025250
call fcn.10025010
push eax
push str._s_texture.out
lea edx, [esp + 0x22c]
push 0x104
push edx
call fcn.10047c9e
add esp, 0x24
push 0
lea eax, [esp + 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov dword [0x100802cc], 0
push 0x7c
lea ecx, [esp + 0x94]
push 0
push ecx
call fcn.10048620
push ebx
call fcn.1000e010
add esp, 0x10
push 0
push 0x21
lea edx, [esp + 0x98]
push edx
push 0
push ebx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], 0x808
call dword [0x10083abc]
mov esi, eax
test esi, esi
je 0x1001467a
push 0xcc
push esi
call fcn.100240b0
add esp, 4
push eax
push esi
push str.TextureDump:_Lock_ERROR_res_x__s__at__d_n
call fcn.10025250
add esp, 0x10
jmp 0x10014987
test dword [esp + 0xf8], 0x1000
je 0x10014955
push ebx
mov ecx, 0x10087220
call fcn.1002c2a0
test eax, eax
jne 0x10014955
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xe4]
push eax
push ecx
push edx
push ebx
push str.TextureDump:_lpdds_x_BitCount_d_size__dx_d__n
call fcn.10025250
mov eax, dword [0x100845d0]
mov ebp, dword [esp + 0xb0]
add esp, 0x14
test eax, eax
je 0x100146d8
cmp ebp, eax
jl 0x100146ec
mov eax, dword [0x100845c8]
mov edi, dword [esp + 0x98]
test eax, eax
je 0x100146fe
cmp edi, eax
jge 0x100146fe
push str.TextureDump:_SKIP_small_texture_n
call fcn.10025250
add esp, 4
jmp 0x10014955
mov eax, dword [0x100845cc]
test eax, eax
je 0x1001470b
cmp ebp, eax
jg 0x10014718
mov eax, dword [0x100845c4]
test eax, eax
je 0x1001472a
cmp edi, eax
jle 0x1001472a
push str.TextureDump:_SKIP_big_texture_n
call fcn.10025250
add esp, 4
jmp 0x10014955
mov esi, dword [esp + 0xe4]
test esi, esi
jne 0x10014747
push str.TextureDump:_SKIP_0BPP_texture_n
call fcn.10025250
add esp, 4
jmp 0x10014955
push 0x6c
lea eax, [esp + 0x28]
push 0
push eax
call fcn.10048620
movzx eax, si
imul eax, ebp
add eax, 0x1f
and eax, 0xffffffe0
cdq
and edx, 7
add eax, edx
mov ebx, eax
sar ebx, 3
mov ecx, ebx
imul ecx, edi
mov dword [esp + 0x44], ecx
mov ecx, 1
mov eax, ecx
mov edx, edi
neg edx
mov word [esp + 0x3c], ax
add esp, 0xc
xor eax, eax
mov dword [esp + 0x24], 0x6c
mov dword [esp + 0x28], ebp
mov word [esp + 0x32], si
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], 3
cmp si, 8
jne 0x100147b1
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
cmp si, 8
jne 0x100147cb
mov dword [esp + 0x44], 0x100
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xec]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xf0]
push edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xa4]
push ebp
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xfc]
push eax
push ecx
mov dword [esp + 0x68], edx
call fcn.10013fd0
add esp, 0x10
test eax, eax
jne 0x10014834
mov edx, dword [esp + 0x10]
push edx
push str.TextureDump:_lpdds_x_hashNULL_n
call fcn.10025250
add esp, 8
jmp 0x10014951
push eax
sub esp, 0x20
mov ecx, 8
lea esi, [esp + 0xfc]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.10014060
mov ecx, dword [esp + 0xc0]
add esp, 0x20
push eax
mov eax, dword [esp + 0xa0]
push eax
push ecx
call fcn.10025010
push eax
push str._s_texture.out_texture._03d._03d._s._08X.bmp
lea edx, [esp + 0x228]
push 0x104
push edx
call fcn.10047c9e
lea eax, [esp + 0x230]
push 0x1005eeb4
push eax
call fcn.10047a23
mov esi, eax
add esp, 0x28
test esi, esi
je 0x10014951
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov ecx, 0x4d42
mov word [esp + 0x14], cx
mov ecx, dword [esp + 0x24]
lea edx, [edx + eax*4]
push esi
lea edx, [edx + ecx + 0xe]
lea eax, [ecx + eax*4 + 0xe]
push 1
mov dword [esp + 0x1e], edx
xor edx, edx
lea ecx, [esp + 0x1c]
push 0xe
push ecx
mov word [esp + 0x2a], dx
mov word [esp + 0x2c], dx
mov dword [esp + 0x2e], eax
call fcn.100478dd
push esi
push 1
lea edx, [esp + 0x3c]
push 0x6c
push edx
call fcn.100478dd
mov eax, dword [esp + 0x64]
add esp, 0x20
test eax, eax
je 0x10014910
push esi
add eax, eax
push 1
add eax, eax
push eax
push 0x10083cd8
call fcn.100478dd
add esp, 0x10
xor edi, edi
cmp dword [esp + 0x98], edi
jle 0x10014948
jmp 0x10014920
mov ecx, edi
imul ecx, dword [esp + 0xa0]
add ecx, dword [esp + 0xb4]
push esi
push 1
push ebx
push ecx
call fcn.100478dd
inc edi
add esp, 0x10
cmp edi, dword [esp + 0x98]
jl 0x10014920
push esi
call fcn.100476ff
add esp, 4
mov ebx, dword [esp + 0x10]
push 0
push ebx
push ebx
call fcn.1000daa0
add esp, 4
call eax
mov esi, eax
test esi, esi
je 0x10014987
push 0x12a
push esi
call fcn.100240b0
add esp, 4
push eax
push esi
push ebx
push str.TextureDump:_Unlock_ERROR_lpdds_x_res_x__s__at__d_n
call fcn.10025250
add esp, 0x14
mov ecx, dword [esp + 0x314]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10047cbc
add esp, 0x308
ret
sub esp, 0x114
mov eax, dword [0x10082594]
xor eax, esp
mov dword [esp + 0x110], eax
push ebx
push ebp
mov ebp, dword [esp + 0x120]
push esi
push edi
push 0x7c
lea eax, [esp + 0x54]
push 0
push eax
mov dword [esp + 0x1c], ebp
call fcn.10048620
push ebp
call fcn.1000e010
add esp, 0x10
push 0
push 0x21
lea ecx, [esp + 0x58]
push ecx
push 0
push ebp
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 0x808
call dword [0x10083abc]
mov esi, eax
test esi, esi
je 0x10014a20
push 0x137
push esi
call fcn.100240b0
add esp, 4
push eax
push esi
push str.TextureHack:_Lock_ERROR_res_x__s__at__d_n
call fcn.10025250
add esp, 0x10
jmp 0x10014c9d
test dword [esp + 0xb8], 0x1000
je 0x10014c6b
push ebp
mov ecx, 0x10087220
call fcn.1002c2a0
test eax, eax
jne 0x10014c6b
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xa4]
push edx
push eax
push ecx
push ebp
push str.TextureHack:_lpdds_x_BitCount_d_size__dx_d__n
call fcn.10025250
mov ecx, dword [esp + 0x70]
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xb8]
mov word [esp + 0x3a], ax
movzx eax, ax
mov esi, dword [esp + 0x6c]
imul eax, ecx
add eax, 0x1f
and eax, 0xffffffe0
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x74]
sar eax, 3
mov dword [esp + 0x28], eax
imul eax, esi
push esi
push ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x90]
push edx
push eax
mov dword [esp + 0x3c], 0x28
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], esi
call fcn.10013fd0
add esp, 0x24
test eax, eax
je 0x10014c6b
push eax
sub esp, 0x20
mov ecx, 8
lea esi, [esp + 0xbc]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.10014060
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
add esp, 0x20
push eax
push ecx
push edx
call fcn.10025010
push eax
push str._s_texture.out_texture._03d._03d._s._08X.bmp
lea eax, [esp + 0xe4]
push 0x104
push eax
call fcn.10047c9e
lea ecx, [esp + 0xec]
push 0x1006639c
push ecx
call fcn.10047a23
mov edi, eax
add esp, 0x28
test edi, edi
je 0x10014c6b
push edi
push str.HASH_bmp_file__x_n
call fcn.10025250
push edi
push 1
lea edx, [esp + 0x50]
push 0xe
push edx
call fcn.1004928e
add esp, 0x18
cmp eax, 1
jne 0x10014c62
push edi
push eax
lea eax, [esp + 0x20]
push 0x28
push eax
call fcn.1004928e
add esp, 0x10
cmp eax, 1
jne 0x10014c62
mov ecx, dword [esp + 0x4a]
push 0
push ecx
push edi
call fcn.10047ed1
add esp, 0xc
cmp dword [esp + 0x20], 0
jge 0x10014bfe
xor ebx, ebx
cmp dword [esp + 0x58], ebx
jle 0x10014c55
xor ebp, ebp
lea esp, [esp]
mov edx, dword [esp + 0x4a]
mov esi, ebx
imul esi, dword [esp + 0x60]
add esi, dword [esp + 0x74]
push 0
lea eax, [edx + ebp]
push eax
push edi
call fcn.10047ed1
mov ecx, dword [esp + 0x6c]
push edi
push 1
push ecx
push esi
call fcn.1004928e
add esp, 0x1c
cmp eax, 1
jne 0x10014c51
add ebp, dword [esp + 0x14]
inc ebx
cmp ebx, dword [esp + 0x58]
jl 0x10014bc0
jmp 0x10014c51
mov eax, dword [esp + 0x58]
xor esi, esi
test eax, eax
jle 0x10014c55
xor ebp, ebp
lea ebx, [ebx]
mov edx, dword [esp + 0x4a]
sub eax, esi
dec eax
imul eax, dword [esp + 0x60]
add eax, dword [esp + 0x74]
push 0
mov ebx, eax
lea eax, [edx + ebp]
push eax
push edi
call fcn.10047ed1
mov ecx, dword [esp + 0x6c]
push edi
push 1
push ecx
push ebx
call fcn.1004928e
add esp, 0x1c
cmp eax, 1
jne 0x10014c51
mov eax, dword [esp + 0x58]
add ebp, dword [esp + 0x14]
inc esi
cmp esi, eax
jl 0x10014c10
mov ebp, dword [esp + 0x10]
push str.TextureHack:_TEXTURE_LOAD_DONE_n
call fcn.10025250
add esp, 4
push edi
call fcn.100476ff
add esp, 4
push 0
push ebp
push ebp
call fcn.1000daa0
add esp, 4
call eax
mov esi, eax
test esi, esi
je 0x10014c9d
push 0x182
push esi
call fcn.100240b0
add esp, 4
push eax
push esi
push ebp
push str.TextureHack:_Unlock_ERROR_lpdds_x_res_x__s__at__d_n
call fcn.10025250
add esp, 0x14
mov ecx, dword [esp + 0x120]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10047cbc
add esp, 0x114
ret
mov eax, dword [0x1008743c]
and eax, 0x1e000
cmp eax, 0x4000
je 0x10014ce9
cmp eax, 0x8000
je 0x10014ce4
cmp eax, 0x10000
je 0x10014cf2
jmp 0x10014220
jmp 0x100149a0
mov ecx, dword [esp + 4]
jmp 0x10014500
ret