Function at 0x10038030
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a4
mov eax, dword [ebp + 0x10]
push ebx
push esi
lea ecx, [eax + 0x239c]
push edi
mov edi, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0xc4], ecx
cmp eax, ecx
ja case.0x10038934.243
lea ecx, [ecx]
mov esi, dword [ebp + 8]
cmp edi, 0x2b94
ja 0x10038310
je 0x10038303
cmp edi, 0x28e4
ja 0x1003820c
je 0x100381fa
cmp edi, 0x278c
ja 0x100381a8
je 0x10038161
cmp edi, 0x26e0
ja 0x10038126
je 0x100380f6
mov eax, edi
sub eax, 0x2634
je 0x100380dd
sub eax, 0x56
jne 0x10038c99
push 6
lea eax, [esp + 0x92]
push 0x10068bbc
push eax
call fcn.1003e130
mov dword [esp + 0x9e], 0x2a
jmp 0x10038c96
push 4
lea ecx, [esp + 0x90]
push 0x10068b9c
push ecx
call fcn.1003e130
jmp 0x10038c96
push 0xa
lea edx, [esp + 0x98]
push str..s_
push edx
call fcn.1003e130
add esp, 0xc
push 2
lea eax, [esp + 0x90]
push 0x10068bb4
push eax
call fcn.1003f32e
jmp 0x10038c96
cmp edi, 0x2736
jne 0x10038c99
push 0xa
lea ecx, [esp + 0xa4]
push ecx
push 4
call fcn.1003f4bc
mov edx, dword [0x10068b94]
mov eax, dword [0x10068b98]
mov dword [esp + 0xae], edx
mov dword [esp + 0xb2], eax
jmp 0x10038c96
lea eax, [esp + 0x8c]
add eax, 0xfffffffe
jmp 0x10038170
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x10038170
mov ecx, dword [0x10068bd8]
mov dx, word [0x10068bdc]
mov dword [eax], ecx
push 4
mov word [eax + 4], dx
lea eax, [esp + 0xb0]
push 0x10068be0
push eax
call fcn.1003e130
jmp 0x10038c96
mov eax, edi
sub eax, 0x27e2
je 0x100381e2
sub eax, 0x56
je 0x100381d1
sub eax, 0x56
jne 0x10038c99
mov ecx, dword [esp + 0x58]
mov dx, word [ecx + 2]
mov word [esp + 0x2e], dx
jmp 0x10038c99
mov eax, dword [esp + 0x58]
mov cx, word [eax]
mov word [esp + 0x32], cx
jmp 0x10038c99
mov dword [esp + 0xae], 0x21
mov dword [esp + 0x58], str.lilB
jmp 0x10038c99
mov edx, dword [esp + 0x58]
mov ax, word [edx + 4]
mov word [esp + 0x30], ax
jmp 0x10038c99
cmp edi, 0x2a3c
ja 0x1003828f
je 0x10038273
mov eax, edi
sub eax, 0x293a
je 0x10038261
sub eax, 0x56
je 0x1003824a
sub eax, 0x56
jne 0x10038c99
mov eax, dword [esp + 0xb8]
mov cx, word [eax]
mov dx, word [eax + 2]
mov word [esp + 0x22], cx
mov word [esp + 0x24], dx
jmp 0x10038c99
xor eax, eax
mov word [esp + 0x34], ax
mov dword [esp + 0xb8], 0x10068b80
jmp 0x10038c99
mov ecx, dword [esp + 0x58]
mov dx, word [ecx + 6]
mov word [esp + 0x2c], dx
jmp 0x10038c99
mov eax, dword [esp + 0xb8]
mov cx, word [eax + 4]
xor edx, edx
mov word [esp + 0x20], cx
mov word [esp + 0x26], dx
jmp 0x10038c99
mov eax, edi
sub eax, 0x2a92
je 0x100382f6
sub eax, 0x56
je 0x100382e9
sub eax, 0x56
jne 0x10038c99
push 2
lea eax, [esp + 0x3c]
push 0x10068ba0
push eax
call fcn.1003f32e
add esp, 0xc
push 0
push esi
call fcn.10037360
add esp, 8
test al, al
jne 0x10038c99
mov eax, 0x2a0f
cmp eax, eax
je 0x10038cb8
add eax, 0x3e
cmp eax, 0x2a0f
jbe 0x100382d4
jmp 0x10038c99
mov dword [esp + 0x3a], 0x69
jmp 0x10038c99
mov dword [esp + 0x38], 0x42
jmp 0x10038c99
mov dword [esp + 0x50], 0
jmp 0x10038c99
cmp edi, 0x2e9a
ja 0x10038869
je 0x10038859
cmp edi, 0x2d42
ja 0x1003847a
je 0x1003846a
cmp edi, 0x2c96
ja 0x1003844e
je 0x100383f0
mov eax, edi
sub eax, 0x2bea
je 0x100383bd
sub eax, 0x56
jne 0x10038c99
lea ecx, [esp + 0x38]
mov dword [esp + 0xd0], ecx
lea edx, [esp + 0x20]
lea ecx, [esp + 0x74]
mov dword [esp + 0xd4], edx
lea eax, [esp + 0x2c]
push ecx
lea edx, [esp + 0xe4]
mov dword [esp + 0xe0], eax
push edx
lea eax, [esp + 0xd0]
push eax
mov dword [esp + 0x34], esi
mov dword [esp + 0xd4], 4
mov dword [esp + 0xd8], 2
mov dword [esp + 0xe4], 6
call fcn.1003d860
jmp 0x10038c96
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100383e2
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x100383c7
sub eax, edx
sar eax, 1
mov dword [esp + 0xb4], eax
jmp 0x10038c99
xor eax, eax
mov dword [esp + 0xb4], eax
jmp 0x10038c99
cmp dword [esp + 0x28], 0
je 0x10038c99
jmp 0x10038400
mov esi, 0x7ad1
cmp esi, esi
jne 0x10038433
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10038412
mov edx, dword [edx + 4]
sub eax, edi
sar eax, 1
add eax, dword [esp + 0xb4]
mov dword [esp + 0x28], edx
add dword [esp + 0x50], eax
add esi, 0x14
cmp esi, 0x7ad1
jbe 0x10038407
cmp dword [esp + 0x28], 0
jne 0x10038400
mov edi, dword [esp + 0x14]
jmp 0x10038c99
cmp edi, 0x2cec
jne 0x10038c99
mov eax, dword [esp + 0xb4]
sub dword [esp + 0x50], eax
jmp 0x10038c99
mov dword [esp + 0xbc], 0x65
jmp 0x10038c99
mov eax, edi
sub eax, 0x2d98
je 0x1003882b
sub eax, 0x56
je 0x10038822
sub eax, 0x56
jne 0x10038c99
cmp dword [esp + 0x28], eax
je 0x100387f1
mov esi, dword [esp + 0x28]
jmp 0x100384b0
mov ebx, 0xce5
cmp ebx, 0x10a2
ja 0x10038606
je 0x100385ef
cmp ebx, 0xe98
ja 0x10038571
je 0x1003855a
cmp ebx, 0xd93
ja 0x10038521
je 0x10038511
mov eax, ebx
sub eax, 0xce5
je 0x10038504
sub eax, 0x57
jne 0x100387da
mov ecx, dword [esp + 0x18]
mov dl, byte [ecx]
mov byte [esp + 0x69], dl
jmp 0x100387da
mov dword [esp + 0x18], str.OFbpinijltagycMMpee
jmp 0x100387da
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 1]
mov byte [esp + 0x5e], cl
jmp 0x100387da
mov eax, ebx
sub eax, 0xdea
je 0x10038543
sub eax, 0x57
jne 0x100387da
mov edx, dword [esp + 0x18]
mov al, byte [edx + 4]
mov byte [esp + 0x5f], al
jmp 0x100387da
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 2]
mov dl, byte [eax + 3]
mov byte [esp + 0x6a], cl
mov byte [esp + 0x64], dl
jmp 0x100387da
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 5]
mov dl, byte [eax + 6]
mov byte [esp + 0x67], cl
mov byte [esp + 0x66], dl
jmp 0x100387da
cmp ebx, 0xf9d
ja 0x100385bd
je 0x100385ad
mov eax, ebx
sub eax, 0xeef
je 0x1003859d
sub eax, 0x57
jne 0x100387da
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 8]
mov byte [esp + 0x60], cl
jmp 0x100387da
mov edx, dword [esp + 0x18]
mov al, byte [edx + 7]
mov byte [esp + 0x6b], al
jmp 0x100387da
mov ecx, dword [esp + 0x18]
mov dl, byte [ecx + 9]
mov byte [esp + 0x6e], dl
jmp 0x100387da
mov eax, ebx
sub eax, 0xff4
je 0x100385df
sub eax, 0x57
jne 0x100387da
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0xb]
mov byte [esp + 0x68], cl
jmp 0x100387da
mov edx, dword [esp + 0x18]
mov al, byte [edx + 0xa]
mov byte [esp + 0x63], al
jmp 0x100387da
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0xc]
mov dl, byte [eax + 0xd]
mov byte [esp + 0x5d], cl
mov byte [esp + 0x6d], dl
jmp 0x100387da
cmp ebx, 0x12ac
ja 0x100386b7
je 0x10038696
cmp ebx, 0x11a7
ja 0x10038664
je 0x10038654
mov eax, ebx
sub eax, 0x10f9
je 0x10038644
sub eax, 0x57
jne 0x100387da
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0xf]
mov byte [esp + 0x62], cl
jmp 0x100387da
mov edx, dword [esp + 0x18]
mov al, byte [edx + 0xe]
mov byte [esp + 0x5c], al
jmp 0x100387da
mov ecx, dword [esp + 0x18]
mov dl, byte [ecx + 0x10]
mov byte [esp + 0x65], dl
jmp 0x100387da
mov eax, ebx
sub eax, 0x11fe
je 0x1003867f
sub eax, 0x57
jne 0x100387da
mov byte [esp + 0x6f], al
jmp 0x100387da
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0x11]
mov dl, byte [eax + 0x12]
mov byte [esp + 0x61], cl
mov byte [esp + 0x6c], dl
jmp 0x100387da
mov ecx, dword [esi]
mov edx, dword [esp + 0x54]
mov byte [esp + 0x1f], 1
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x100386a1
jmp 0x100387da
cmp ebx, 0x13b1
ja 0x100387a8
je 0x10038759
mov eax, ebx
sub eax, 0x1303
je 0x10038705
sub eax, 0x57
jne 0x100387da
lea eax, [esp + 0x5c]
push eax
push 0x100
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov ecx, dword [esi + 4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x28], ecx
mov esi, ecx
jmp 0x100387da
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100387da
cmp dword [esi + 4], 0
je 0x100387da
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10038720
mov edi, dword [esp + 0x54]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x10038734
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x28]
jmp 0x100387d6
cmp dword [esp + 0x70], 0
jne 0x10038767
mov byte [esp + 0x1f], 0
jmp 0x100387da
cmp byte [esp + 0x1f], 0
je 0x100387da
mov edi, 0x7bb7
mov eax, edi
sub eax, 0x7bb7
je 0x1003878e
sub eax, 0x44
jne 0x1003879b
mov edx, dword [esp + 0x70]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1003879b
mov eax, dword [esp + 0x70]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
add edi, 0x44
cmp edi, 0x7bfb
jbe 0x10038773
jmp 0x100387d6
cmp ebx, 0x1408
jne 0x100387da
mov edx, dword [esp + 0x54]
mov eax, edx
lea edi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x100387c0
sub eax, edi
sar eax, 1
lea ecx, [edx + eax*2]
mov dword [esp + 0x54], ecx
mov edi, dword [esp + 0x14]
add ebx, 0x57
cmp ebx, 0x1408
jbe 0x100384b5
test esi, esi
jne 0x100384b0
mov eax, dword [esp + 0xbc]
lea edx, [esp + 0x74]
push edx
push eax
lea ecx, [esp + 0xe8]
push ecx
push 0
push 0
lea edx, [esp + 0xa0]
push edx
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
jmp 0x10038c99
mov dword [esp + 0x28], esi
jmp 0x10038c99
mov eax, dword [esp + 0x50]
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1003e491
add esp, 4
mov dword [esp + 0xc0], eax
mov dword [esp + 0x54], eax
jmp 0x10038c99
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], eax
jmp 0x10038c99
cmp edi, 0x4b3a
ja 0x10038be6
je 0x100388dc
mov eax, edi
sub eax, 0x2ef0
je case.0x10038934.243
sub eax, 0x4f4
je 0x100388be
sub eax, 0x56
jne 0x10038c99
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [edi + 4]
mov edx, dword [esi]
add eax, dword [edi]
push ecx
push edx
push eax
call fcn.10046530
mov ecx, dword [esi + 4]
add esp, 0xc
add dword [edi + 4], ecx
mov edi, dword [esp + 0x14]
jmp 0x10038c99
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
push eax
call fcn.1001cf70
mov edi, dword [esp + 0x18]
add esp, 4
jmp 0x10038c99
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
cmp eax, 4
jne 0x1003891f
mov esi, dword [ebp + 8]
mov edi, 0x73f7
mov eax, edi
sub eax, 0x73f7
je 0x10038902
sub eax, 0x2a
je 0x10038993
jmp 0x1003890b
mov ecx, ebx
mov eax, esi
call fcn.100323b0
add edi, 0x2a
cmp edi, 0x7421
jbe 0x100388ee
mov edi, dword [esp + 0x14]
jmp 0x10038c99
test eax, eax
jne 0x10038970
xor esi, esi
cmp esi, 0xf3
ja case.0x10038934.1
movzx ecx, byte [esi + 0x10038d08]
jmp dword [ecx*4 + 0x10038cf4]
mov edi, dword [ebp + 8]
call fcn.10032800
jmp case.0x10038934.1
mov ecx, dword [ebp + 8]
mov eax, ebx
call fcn.10030df0
jmp case.0x10038934.1
mov byte [esp + 0xc], 0
add esi, 0x51
lea edx, [esi + 0x2adf]
cmp edx, 0x2bd2
jbe 0x10038925
mov edi, dword [esp + 0x14]
jmp 0x10038c99
cmp eax, 3
jne 0x100389d0
mov esi, dword [ebp + 8]
mov edi, 0x6d17
lea ecx, [ecx]
mov eax, edi
sub eax, 0x6d17
je 0x100389a3
sub eax, 0x54
jne 0x100389bc
mov eax, 0x924c738
mov byte [esp + 0xc], 1
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xchg esp, eax
mov ecx, 0x536d51b7
push esi
call fcn.10024f50
add esp, 4
push eax
push esi
call fcn.1002ae90
add esp, 0xc
add edi, 0x54
cmp edi, 0x6d6b
jbe 0x10038980
mov edi, dword [esp + 0x14]
jmp 0x10038c99
push 0
push 1
push ebx
call fcn.10035b00
add esp, 0xc
test al, al
je 0x10038a01
mov eax, 0xc7c
cmp eax, eax
je 0x10038cc1
add eax, 0x4c
cmp eax, 0xc7c
jbe 0x100389e8
mov edi, dword [esp + 0x14]
jmp 0x10038c99
push 0x62
push 1
push ebx
call fcn.10035b00
add esp, 0xc
test al, al
je 0x10038a76
mov esi, dword [ebp + 8]
mov edi, 0x1336
cmp edi, 0x13ec
ja 0x10038a56
je 0x10038a4f
mov eax, edi
sub eax, 0x1336
je 0x10038a3b
sub eax, 0x5b
jne 0x10038a62
mov ecx, esi
call fcn.1002bb40
jmp 0x10038a62
mov eax, ebx
mov ecx, esi
call fcn.1002b790
push esi
call fcn.10013b50
add esp, 4
jmp 0x10038a62
mov byte [esp + 0xc], 1
jmp 0x10038a62
cmp edi, 0x1447
je case.0x10038934.243
add edi, 0x5b
cmp edi, 0x1447
jbe 0x10038a1a
add byte [esi - 0x53], dh
mov edi, dword [esp + 0x14]
jmp 0x10038c99
push 0x62
push 0
push ebx
call fcn.10035b00
add esp, 0xc
test al, al
je 0x10038ae1
mov esi, 0x599b
mov eax, esi
sub eax, 0x599b
je 0x10038ac3
sub eax, 0xd
je 0x10038aaf
sub eax, 0xd
jne 0x10038acd
adc dword [0x8b9c63e8], ecx
inc esp
and al, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
adc ch, byte [eax]
jbe 0x10038a6a
xchg esi, eax
mov edi, dword [ebp + 8]
call fcn.10032800
mov byte [esp + 0xc], 0
jmp 0x10038acd
mov ecx, dword [ebp + 8]
mov eax, ebx
call fcn.10030df0
add esi, 0xd
cmp esi, 0x59b5
jbe 0x10038a8c
mov edi, dword [esp + 0x14]
jmp 0x10038c99
cmp dword [ebx], 7
jne 0x10038b1a
mov esi, dword [ebp + 8]
push esi
call fcn.10024f50
mov ecx, dword [esi + 4]
add esp, 4
cmp eax, dword [ecx + 4]
jne 0x10038b1a
mov eax, 0x14e4
cmp eax, eax
je 0x10038993
add eax, 0x15
cmp eax, 0x14e4
jbe 0x10038b01
mov edi, dword [esp + 0x14]
jmp 0x10038c99
mov ebx, 0x5671
xor esi, esi
cmp esi, 0x9c
ja case.0x10038b34.1
movzx edx, byte [esi + 0x10038e10]
jmp dword [edx*4 + 0x10038dfc]
and eax, 0x58565d4a
mov edi, dword [ebp + 8]
push edi
call fcn.10024f50
mov ecx, dword [edi + 4]
add esp, 4
cmp eax, dword [ecx + 4]
jne case.0x10038b34.1
mov edi, 0x445f
mov eax, edi
sub eax, 0x445f
je 0x10038b77
sub eax, 0x15
jne 0x10038b87
cmp byte [edx + 0x3c], ch
xor byte [edi - 0x75], bh
inc esp
and al, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
call fcn.10030df0
mov byte [esp + 0xc], 0
add edi, 0x15
cmp edi, 0x4474
jbe 0x10038b59
jmp case.0x10038b34.1
mov edx, dword [ebp + 0xc]
push 0x61
push 0
push edx
call fcn.10035b00
add esp, 0xc
test al, al
jne case.0x10038b34.1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov byte [ecx + 0x34], 1
jmp case.0x10038b34.1
add ebx, ebp
pop ss
mov edi, dword [ebp + 8]
push edi
call fcn.10013b50
add esp, 4
push 8
push edi
call fcn.100225f0
add esp, 8
add ebx, 0x34
add esi, 0x34
cmp ebx, 0x570d
jbe 0x10038b21
mov edi, dword [esp + 0x14]
jmp 0x10038c99
mov eax, edi
sub eax, 0x59d8
je 0x10038c74
sub eax, 0x56
je 0x10038c11
sub eax, 0x56
jne 0x10038c99
pop eax
push es
jge 0x10038bb1
push ebx
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x96
push 2
push 0x5e
push 0x5d
push 0x5b
push 0x58
push 0x57
push 0x56
push 0x55
push 0x54
push 0x4a
push 0x90
push 0x68
push 0x67
push 0x5f
push 0
mov ecx, 1
push 0x60
mov edx, ecx
push 0x7c
mov dword [esp + 0x94], edx
push 0
lea edx, [esp + 0x90]
push edx
lea eax, [esp + 0x60]
push esi
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
call fcn.1002aec0
add esp, 0x54
mov byte [esp + 0xc], al
jmp 0x10038c99
in eax, dx
pop ebx
int3
add esp, 0xc
add edi, 0x56
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0xc4]
jbe 0x10038060
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
push ebx
push edx
call fcn.1000be00
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x14]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc eax
test al, 0xf8
xor byte [edx + 0x5f], 0xc6
inc esp
and al, 8
add dword [ebx + 0x5e082444], ecx
pop ebx
mov esp, ebp
pop ebp
ret