Function at 0x4999e0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4afec6
mov eax, dword fs:[0]
push eax
mov eax, 0x2638
call fcn.0049e430
mov eax, dword [0x4c0390]
xor eax, esp
mov dword [esp + 0x2634], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c0390]
xor eax, esp
push eax
lea eax, [esp + 0x264c]
mov dword fs:[0], eax
call fcn.00433b70
mov eax, dword [0x4e5748]
movsx eax, byte [eax + 0x4c0324]
mov cl, byte [0x4e695c]
xor ebp, ebp
mov dword [0x4bedbc], eax
neg eax
sbb eax, eax
mov dword [0x4bedb8], eax
mov al, byte [0x4e695b]
mov dword [0x5007c0], ebp
mov dword [0x5007c4], ebp
mov dword [0x5007ac], ebp
mov dword [0x5007a8], ebp
mov dword [0x4c9398], ebp
mov dword [0x4c9828], ebp
mov dword [0x4bedc0], 0x4c9828
mov dword [0x4c93b8], ebp
mov dword [0x4c93b4], ebp
mov dword [0x5007a4], ebp
mov dword [0x5007a0], ebp
cmp al, 0x52
jne 0x499aa3
mov dword [0x4c9814], 3
test cl, cl
je 0x499aa9
mov dword [0x4c9814], ebp
xor edx, edx
cmp al, 0x53
sete dl
mov ebx, 1
mov dword [0x4c981c], edx
cmp al, 0x52
jne 0x499aca
mov dword [0x4c9818], ebx
cmp cl, 0x4e
je 0x499ad0
mov dword [0x4c9818], ebp
cmp byte [0x4e758c], 0
je 0x499c7b
push 0x4e758c
call fcn.0049b180
mov dword [0x4c93b8], eax
cmp eax, ebp
jne 0x499b06
mov ecx, 0x4c9364
call fcn.004280d0
push 0x4b1914
push 4
call fcn.00499470
cmp word [0x4e798c], bp
je 0x499b22
push 0x4e798c
call fcn.0049b200
mov dword [0x4c93b4], eax
cmp eax, ebp
je 0x499af0
cmp byte [0x4e57a1], 0
je 0x499b5f
mov eax, dword [0x4c93b8]
push eax
call fcn.0044da20
test al, al
je 0x499b5f
movsx ecx, byte [0x4e695b]
push ecx
push 0x4b1dc8
call fcn.0049db10
add esp, 8
test eax, eax
je 0x499b5f
mov edx, dword [0x4c93b8]
push edx
call fcn.00430c80
cmp dword [0x4c9814], ebp
je 0x499bf9
mov eax, dword [str.rebuilt.]
mov ecx, dword [0x4b392c]
mov dl, byte [0x4b3930]
mov dword [esp + 0x1dc8], eax
mov eax, dword [0x4c93b8]
push eax
mov dword [esp + 0x1dd0], ecx
mov byte [esp + 0x1dd4], dl
call fcn.0044db30
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x499ba0
lea edi, [esp + 0x1dc8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x499bb1
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]
lea ecx, [esp + 0x1dc8]
push ecx
push 0x267
call fcn.0045bde0
push eax
lea edx, [esp + 0x21d0]
push edx
call fcn.0049deb5
add esp, 0xc
lea eax, [esp + 0x21c8]
push eax
call fcn.0047f870
call fcn.0049c690
mov esi, eax
cmp esi, ebp
je 0x499c76
lea eax, [esi - 2]
cmp eax, 9
ja case.0x499c13.5
movzx ecx, byte [eax + 0x49ae38]
jmp dword [ecx*4 + 0x49ae28]
push 0x2ad
call fcn.0045bde0
mov edx, dword [0x4c93b8]
push eax
push edx
call fcn.00445390
mov ecx, dword [0x4c93b8]
add esp, 8
push ecx
push esi
jmp 0x499b01
mov ecx, 0x4c9364
call fcn.004280d0
mov ecx, dword [0x4c93b8]
push ecx
push esi
jmp 0x499b01
mov eax, dword [0x4c93b8]
push eax
push ebp
mov ecx, 0x4c9364
call fcn.00428220
mov ecx, dword [0x4c93b8]
push ecx
push esi
jmp 0x499b01
mov al, byte [0x4e695b]
cmp al, 0x44
jne 0x499c9d
call fcn.004763e0
cmp eax, ebp
je 0x499c98
cmp eax, 0xffffffff
je 0x499c98
push 0x4b1914
push eax
jmp 0x499b01
mov al, byte [0x4e695b]
cmp al, 0x41
jne 0x499ccb
call fcn.00476150
cmp byte [0x4e5765], 0
jne 0x499cb8
cmp byte [0x4e5764], 0
je 0x499ccb
mov eax, dword [0x4c9820]
cmp eax, ebp
je 0x499ccb
mov dword [eax + 0x50], ebx
mov eax, dword [eax + 0x58]
cmp eax, ebp
jne 0x499cc1
call fcn.004311d0
cmp dword [0x4c93a8], ebp
je 0x499ce7
mov edx, dword [0x4c93a0]
push edx
call fcn.0049dbfd
add esp, 4
mov esi, dword [0x4c9820]
mov dword [0x5007b0], ebp
mov dword [0x5007b4], ebp
mov dword [0x5007b8], ebp
mov dword [0x5007bc], ebp
mov dword [esp + 0x18], ebp
cmp esi, ebp
je 0x499ef3
jmp 0x499d25
mov ebx, 1
cmp dword [esi + 0x50], ebp
je 0x499ee8
mov ecx, dword [esi + 0x38]
push 0x400
lea eax, [esp + 0x21cc]
push eax
push ecx
call fcn.0044e750
cmp byte [0x4e5761], 0
je 0x499d65
mov edx, dword [esi + 0x38]
push edx
call fcn.00499640
test al, 0x20
jne 0x499d65
mov dword [esi + 0x50], ebp
mov dword [esi + 0x54], ebx
jmp 0x499ee8
mov eax, dword [esi + 0x14]
add dword [0x5007b8], eax
adc dword [0x5007bc], ebp
cmp byte [0x4e695b], 0x44
je 0x499ee4
mov ecx, dword [esi + 0x38]
push ebp
push ebp
push ecx
call fcn.00475f90
mov edx, dword [0x5007c0]
mov ecx, dword [0x5007c4]
cmp eax, ebp
je 0x499dbf
cmp eax, edx
jb 0x499dbf
cmp ecx, ebp
je 0x499da8
cmp eax, ecx
jae 0x499dbf
cmp byte [0x4e5765], 0
jne 0x499dba
cmp byte [0x4e5764], 0
je 0x499dfa
cmp eax, dword [esi + 8]
ja 0x499dfa
mov dword [esi + 0x50], ebp
cmp eax, ebp
je 0x499dd9
cmp eax, edx
jb 0x499dd9
cmp ecx, ebp
je 0x499dd2
cmp eax, ecx
jae 0x499dd9
mov eax, 1
jmp 0x499ddb
xor eax, eax
mov dword [esi + 0x54], eax
cmp eax, ebp
je 0x499ee8
mov edx, dword [esi + 0x14]
sub dword [0x5007b8], edx
sbb dword [0x5007bc], ebp
jmp 0x499ee8
cmp byte [0x4e695b], 0x44
je 0x499ee4
mov eax, dword [0x4e5744]
cmp eax, ebp
je 0x499ee4
cmp eax, 2
sete bl
cmp eax, 4
jne case.default.0x499eaa
xor eax, eax
jmp 0x499e30
mov cl, byte [esp + eax + 0x21c8]
mov byte [esp + eax + 0x1dc8], cl
inc eax
test cl, cl
jne 0x499e30
lea eax, [esp + 0x1dc8]
push eax
mov edi, 2
call fcn.0044dc00
movsx ecx, byte [eax]
push ecx
call fcn.0044d940
test al, al
jne 0x499ea2
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x14]
push 7
push edx
push ebp
push eax
lea ecx, [esp + 0x1dd8]
push ecx
lea edx, [esp + 0x1dc4]
push edx
call fcn.0040a630
movsx eax, byte [esp + 0x1db0]
push eax
mov eax, dword [str.YNANC]
push eax
call fcn.0049db10
sub eax, dword [str.YNANC]
add esp, 8
inc eax
mov edi, eax
add edi, 0xfffffffe
cmp edi, 3
ja case.default.0x499eaa
jmp dword [edi*4 + 0x49ae44]
mov dword [0x4e5744], 1
jmp case.default.0x499eaa
mov dword [0x4e5744], 2
mov dword [esi + 0x50], ebp
jmp 0x499ee8
push 0xff
mov ecx, 0x4c9364
call fcn.00428280
test bl, bl
je 0x499ee4
mov dword [esi + 0x50], ebp
jmp 0x499ee8
inc dword [esp + 0x18]
mov esi, dword [esi + 0x58]
cmp esi, ebp
jne 0x499d20
lea ecx, [esp + 0x1924]
call fcn.004680a0
lea ecx, [esp + 0x1948]
call fcn.004680a0
lea ecx, [esp + 0x196c]
call fcn.004680a0
mov ecx, dword [0x4c93b4]
mov edx, dword [0x4c93b8]
push ecx
mov dword [esp + 0x1db4], ebp
push edx
xor ebp, ebp
call fcn.0042f950
test al, al
je 0x499f6c
mov ecx, dword [0x4c93b4]
mov edx, dword [0x4c93b8]
push ebp
lea eax, [esp + 0xd14]
push eax
push ecx
push edx
call fcn.004332b0
test al, al
je 0x499f6c
mov eax, dword [esp + 0x1910]
mov ebp, dword [esp + 0x1914]
mov dword [esp + 0x1db0], eax
mov esi, dword [0x4c9828]
test esi, esi
je 0x49a082
lea ebx, [ebx]
mov ecx, dword [esi + 0xc]
add dword [0x5007b8], ecx
adc dword [0x5007bc], 0
mov edi, dword [esi]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x499f97
sub eax, edx
mov edx, dword [esi + 0xc]
lea eax, [edx + eax*2 + 0x100]
add dword [esp + 0x1db0], eax
adc ebp, 0
test ebp, ebp
jg 0x49a11f
jl 0x499fcf
cmp dword [esp + 0x1db0], 0x80000000
jae 0x49a11f
push 0
push 0
push edi
call fcn.00475f90
mov edi, eax
test edi, edi
sete bl
cmp byte [0x4e5761], 0
je 0x499ff5
mov ecx, dword [esi]
push ecx
call fcn.00499640
test al, 0x20
je 0x49a051
mov al, byte [0x4e695b]
cmp al, 0x44
je 0x49a051
cmp al, 0x41
jne 0x49a00b
cmp byte [0x4e5764], 0
jne 0x49a051
mov edx, dword [esi]
push 1
push 1
push edx
mov ecx, 0x4e2ea0
call fcn.0041bd00
test al, al
jne 0x49a051
test bl, bl
jne 0x49a055
cmp edi, dword [0x5007c0]
jb 0x49a072
mov eax, dword [0x5007c4]
test eax, eax
je 0x49a039
cmp edi, eax
jae 0x49a072
mov eax, dword [0x4c93b8]
mov ecx, dword [esi + 8]
push eax
push ecx
call fcn.004652e0
test eax, eax
je 0x49a072
mov esi, dword [esi + 0x14]
jmp 0x49a07a
test bl, bl
je 0x49a072
mov edx, dword [esi + 8]
push edx
push 0x206
call fcn.0045bde0
push eax
mov eax, dword [0x4c93b8]
push eax
call fcn.00445390
add esp, 0xc
push esi
call fcn.004310f0
mov esi, eax
test esi, esi
jne 0x499f80
cmp dword [esp + 0x18], 0
mov eax, dword [0x4c9820]
jne 0x49a194
cmp dword [0x4c9828], 0
jne 0x49a194
cmp dword [0x4c9818], 0
jne 0x49a194
mov ecx, dword [0x4e578c]
mov edx, dword [0x4c9814]
mov esi, dword [0x4c981c]
test eax, eax
je 0x49a0e7
test ecx, ecx
jne 0x49a194
test edx, edx
jne 0x49a260
test esi, esi
jne 0x49a1a1
cmp byte [0x4e42b0], 0
jne 0x49a1a1
cmp byte [0x4e5765], 0
jne 0x49a18d
cmp byte [0x4e5764], 0
jne 0x49a18d
test eax, eax
jne 0x49a145
test ecx, ecx
jne 0x49a111
test edx, edx
jne 0x49a111
test esi, esi
je 0x49a145
mov edx, dword [0x4c93b8]
push edx
push 0xd
jmp 0x499b01
push 0x3b7
call fcn.0045bde0
mov ecx, dword [0x4c93b8]
push eax
push ecx
call fcn.00445390
add esp, 8
push 0x4b1914
push 5
jmp 0x499b01
mov al, byte [0x4e695b]
cmp al, 0x41
jne 0x49a161
push 0x340
call fcn.0045bde0
push eax
mov eax, dword [0x4c93b8]
push eax
jmp 0x49a177
cmp al, 0x44
jne 0x49a17f
push 0x345
call fcn.0045bde0
mov ecx, dword [0x4c93b8]
push eax
push ecx
call fcn.00445390
add esp, 8
mov edx, dword [0x4c93b8]
push edx
push 0xc
jmp 0x499b01
push 0
jmp 0x49abfc
cmp dword [0x4c9814], 0
jne 0x49a260
cmp byte [0x4e2eb0], 0
je 0x49a1f6
test eax, eax
jne 0x49a1ba
cmp dword [0x4c93b0], eax
je 0x49a260
mov edx, dword [0x4c93b4]
mov eax, dword [0x4c93b8]
push 0
push 0x4b3764
push edx
push eax
call fcn.004300f0
test eax, eax
jne 0x49a217
mov eax, dword [0x4c93b8]
push eax
push eax
mov ecx, 0x4c9364
call fcn.00428130
mov ecx, dword [0x4c93b8]
push ecx
push 0xf
jmp 0x499b01
test eax, eax
jne 0x49a1ba
cmp dword [0x4c93b0], eax
jne 0x49a1ba
mov ecx, dword [0x4c93b8]
push eax
mov eax, dword [0x4c93b4]
push 0x4b1ba8
push eax
push ecx
jmp 0x49a1ce
push eax
call fcn.0049f426
mov edx, dword [0x4c93b4]
mov eax, dword [0x4c93b8]
add esp, 4
push edx
push eax
call fcn.0042f9f0
cmp dword [0x4c9820], 0
mov dword [esp + 0x1db0], eax
jne 0x49a26b
cmp dword [0x4c93b0], 0
jne 0x49a26b
mov ecx, dword [0x4c93b4]
mov edx, dword [0x4c93b8]
push ecx
push edx
call fcn.0042fd00
jmp 0x49a26b
mov dword [esp + 0x1db0], 0
mov eax, dword [0x4c93b4]
mov ecx, dword [0x4c93b8]
push eax
xor edi, edi
xor esi, esi
push ecx
mov dword [esp + 0x20], esi
mov dword [0x4c939c], edi
call fcn.0042f950
mov bl, al
cmp dword [0x4c9820], edi
jne 0x49a29d
cmp dword [0x4c93b0], edi
je 0x49a2ea
mov edx, dword [0x4c93b4]
mov eax, dword [0x4c93b8]
push edi
push 0x4b1948
push edx
push eax
call fcn.004300f0
mov esi, eax
mov dword [0x5007a0], eax
mov dword [esp + 0x18], esi
cmp eax, edi
jne 0x49a2ea
mov ecx, dword [0x4c93b8]
push ecx
push 0x1f5
call fcn.0045bde0
push eax
call fcn.0048e100
add esp, 8
push 0x4b1914
push 0xd
jmp 0x499b01
test bl, bl
je 0x49a2fc
mov edx, dword [0x4c93b8]
push edx
call fcn.004315c0
jmp 0x49a30a
mov eax, dword [0x4c93b8]
push eax
call fcn.004ac2cd
add esp, 4
mov dword [0x5007ac], eax
cmp eax, edi
je 0x499af0
test bl, bl
jne 0x49a383
mov ecx, dword [0x4c93b4]
cmp ecx, edi
je 0x49a383
push ecx
call fcn.0046e0b0
mov ecx, eax
mov dword [0x5007a8], ecx
cmp ecx, edi
je 0x499af0
mov eax, dword [0x5007ac]
push edi
push 0x4b1ba8
push ecx
push eax
call fcn.004300f0
mov ecx, eax
mov dword [esp + 0x20], ecx
mov dword [0x5007a4], ecx
cmp ecx, edi
jne 0x49a38b
mov ecx, dword [0x5007ac]
push ecx
push 0x1f6
call fcn.0045bde0
push eax
call fcn.0048e100
add esp, 8
push 0x4b1914
push 0xa
jmp 0x499b01
mov ecx, dword [0x5007a8]
jmp 0x49a340
mov eax, dword [0x4c93b0]
cmp eax, edi
je 0x49a3bd
push eax
push ecx
push esi
call fcn.004316a0
cmp eax, edi
je 0x49a3b8
mov ecx, dword [0x5007ac]
cmp eax, 0xa
je 0x49a3b1
mov ecx, dword [0x4c93b8]
push ecx
push eax
jmp 0x499b01
mov eax, dword [0x4c93b0]
mov dword [0x4c939c], eax
mov al, byte [0x4e695b]
mov dword [esp + 0x24], edi
cmp al, 0x41
jne 0x49a3eb
mov eax, dword [0x4c93b8]
xor edx, edx
cmp dword [0x4c9820], edi
setne dl
push edx
push eax
call fcn.004097c0
mov al, byte [0x4e695b]
mov esi, dword [0x4c9820]
mov dword [esp + 0x14], 0x4c9820
cmp esi, edi
je 0x49a6de
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
jmp 0x49a415
mov al, byte [0x4e695b]
mov edi, 1
cmp dword [esi + 0x50], edi
jne 0x49a515
cmp al, 0x41
jne 0x49a48e
mov ecx, dword [esi + 0x4c]
push 0
push 0
push edi
push 0
push ecx
call fcn.00409800
push ebp
push esi
call fcn.0049d440
test eax, eax
je 0x49a450
cmp eax, 0x12
je 0x49a45e
cmp eax, 0xffffffff
jne 0x49a789
cmp eax, 0x12
je 0x49a45e
cmp eax, 0xffffffff
jne 0x49a6c9
mov edx, dword [esi + 0x4c]
mov eax, dword [0x4c93b8]
push edx
push eax
mov ecx, 0x4c9364
mov dword [esp + 0x2c], edi
call fcn.004280f0
push ebp
push ebx
push esi
call fcn.0049c0c0
test eax, eax
jne 0x499c8d
mov dword [esi + 0x50], eax
jmp 0x49a6c9
cmp dword [0x4dc178], 0
jne 0x49a6de
mov ecx, dword [esi + 0x4c]
push 0
push 0
push ecx
call fcn.00409910
mov edx, dword [esi + 0x48]
mov edi, dword [esi + 0x58]
push edx
call fcn.0049dbfd
mov eax, dword [esi + 0x4c]
push eax
call fcn.0049dbfd
add esp, 8
cmp dword [esi + 0x1c], 0
je 0x49a4d2
mov ecx, dword [esi + 0x3c]
push ecx
call fcn.0049dbfd
add esp, 4
cmp dword [esi + 0x20], 0
je 0x49a4e9
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x3c]
je 0x49a4e9
push eax
call fcn.0049dbfd
add esp, 4
cmp dword [esi + 0x24], 0
je 0x49a4fb
mov edx, dword [esi + 0x44]
push edx
call fcn.0049dbfd
add esp, 4
push esi
call fcn.0049dbfd
mov eax, dword [esp + 0x18]
add esp, 4
mov dword [eax], edi
dec dword [0x4c93a8]
jmp 0x49a6d0
cmp dword [0x4dc178], 0
jne 0x49a6de
cmp al, 0x44
jne 0x49a532
mov ecx, dword [esi + 0x4c]
push edi
push 0
push ecx
call fcn.00409910
cmp dword [0x4c9818], 0
mov edi, dword [0x4c9814]
je 0x49a6b3
lea ecx, [esp + 0x28]
call fcn.00401f60
mov dword [esp + 0x2654], 0
push 0xce8
lea edx, [esp + 0x2c]
push 0
push edx
call fcn.0049e460
mov eax, dword [esi + 0x48]
add esp, 0xc
push eax
call fcn.0044dc00
movsx ecx, byte [eax]
push ecx
call fcn.0044d940
push 0x3ff
lea edx, [esp + 0x5c]
mov byte [esp + 0x23], al
mov eax, dword [esi + 0x48]
push edx
push eax
call fcn.0044e750
lea ecx, [esp + 0x21c8]
push ecx
lea edx, [esp + 0x5c]
push edx
call sub.USER32.dll_CharToOemA
lea eax, [esp + 0x1dc8]
push eax
lea ecx, [esp + 0x21cc]
push ecx
call sub.USER32.dll_OemToCharA
lea ecx, [esp + 0x1dc8]
lea eax, [esp + 0x58]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a5e8
test dl, dl
je 0x49a5e4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a5e8
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a5c8
xor eax, eax
jmp 0x49a5ed
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov edx, 0x800
sete byte [esp + 0x1e]
test word [esi + 4], dx
jne 0x49a614
movzx eax, word [esi]
push eax
shr eax, 8
push eax
call fcn.0049afa0
test al, al
je 0x49a614
mov bl, 1
jmp 0x49a616
xor bl, bl
lea eax, [esp + 0x58]
push eax
mov ecx, eax
push ecx
call sub.USER32.dll_CharToOemA
cmp byte [esp + 0x1e], 0
je 0x49a69b
lea edx, [esp + 0x28]
push edx
push 0x4e2ea0
call fcn.0044fd10
test al, al
je 0x49a69b
cmp byte [esp + 0x1f], 0
je 0x49a64e
lea eax, [esp + 0x58]
push eax
call fcn.0044dfb0
push 0x400
push 0
lea ecx, [esp + 0x60]
push ecx
call fcn.0044e7e0
lea edx, [esp + 0x58]
push edx
mov eax, edx
push eax
call sub.USER32.dll_OemToCharA
test bl, bl
je 0x49a678
mov ecx, 0xb17
mov word [esi], cx
mov edx, dword [esi + 0x48]
push edx
call fcn.0049dbfd
lea eax, [esp + 0x5c]
push eax
call fcn.004ac2cd
mov dword [esi + 0x48], eax
add esp, 8
mov dword [0x4c9814], 3
mov dword [esp + 0x2654], 0xffffffff
lea ecx, [esp + 0x28]
call fcn.00401670
mov ebx, dword [esp + 0x18]
push ebp
push ebx
push esi
call fcn.0049c0c0
mov dword [0x4c9814], edi
test eax, eax
jne 0x499c8d
add esi, 0x58
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
test esi, esi
jne 0x49a410
mov edi, dword [0x4c9828]
test edi, edi
je 0x49a7f1
xor ebx, ebx
cmp dword [0x4dc178], ebx
jne 0x49a7f1
push 0x5c
call fcn.0049df7f
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x499af0
mov dword [esi + 0x58], ebx
mov edx, dword [edi]
mov dword [esi + 0x38], edx
mov eax, dword [edi + 4]
mov dword [edi], ebx
lea ebp, [esi + 0x58]
push ebx
mov dword [esi + 0x48], eax
mov ecx, dword [edi + 8]
mov dword [edi + 4], ebx
push ebx
mov dword [esi + 0x4c], ecx
mov dword [edi + 8], ebx
mov edx, dword [esi + 0x4c]
push ebx
push ebx
push edx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x50], 1
call fcn.00409800
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.0049d440
cmp eax, ebx
je 0x49a76d
cmp eax, 0x12
je 0x49a7a1
cmp eax, 0xffffffff
jne 0x49a84a
cmp eax, 0x12
je 0x49a7a1
cmp eax, 0xffffffff
je 0x49a7a1
mov ecx, dword [esp + 0x14]
mov dword [ecx], esi
inc dword [0x4c93a8]
mov dword [esp + 0x14], ebp
jmp 0x49a7e1
cmp dword [0x4dc178], 0
jne 0x49a6de
push 0x4b1914
push eax
jmp 0x499b01
mov edx, dword [esi + 0x4c]
mov eax, dword [0x4c93b8]
push edx
push eax
mov ecx, 0x4c9364
mov dword [esp + 0x2c], 1
call fcn.004280f0
mov ecx, dword [esi + 0x38]
push ecx
call fcn.0049dbfd
mov edx, dword [esi + 0x48]
push edx
call fcn.0049dbfd
mov eax, dword [esi + 0x4c]
push eax
call fcn.0049dbfd
push esi
call fcn.0049dbfd
add esp, 0x10
push edi
call fcn.004310f0
mov edi, eax
cmp edi, ebx
jne 0x49a6ee
xor ebp, ebp
cmp byte [0x4e42b0], 0
je 0x49a9d9
cmp dword [0x4c9814], ebp
jne 0x49a9d9
push 0x4b1948
push 0x4e42b0
call fcn.0049f748
mov esi, eax
add esp, 8
mov dword [esp + 0x14], esi
cmp esi, ebp
jne 0x49a85d
mov ecx, dword [0x4c93b8]
push 0x4e42b0
push ecx
mov ecx, 0x4c9364
call fcn.004280f0
push 0x4b1914
push 0x12
jmp 0x499b01
cmp dword [0x4dc178], ebx
jne 0x49a7f1
push 0x4c93c0
push eax
jmp 0x499b01
cmp dword [0x4c93a4], ebp
je 0x49a874
mov edx, dword [0x4c9824]
push edx
call fcn.0049dbfd
add esp, 4
push 0x8000
call fcn.0049df7f
add esp, 4
mov dword [0x4c9824], eax
cmp eax, ebp
je 0x499af0
push esi
push 0x7fff
push 1
push eax
call fcn.0049f9f9
mov ecx, dword [0x4c9824]
mov dword [0x4c93a4], eax
add esp, 0x10
mov byte [ecx + eax], 0
cmp dword [0x4e46b0], 2
jne 0x49a8c4
mov eax, dword [0x4c9824]
push eax
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x4e46b0], 3
jne 0x49a9ce
mov ebx, dword [0x4c9824]
movsx eax, byte [ebx]
cmp eax, 0xff
jne 0x49a8f4
movsx edx, byte [ebx + 1]
cmp edx, 0xfe
jne 0x49a8f4
mov edi, 1
jmp 0x49a8f6
xor edi, edi
cmp eax, 0xfe
jne 0x49a90f
movsx eax, byte [ebx + 1]
cmp eax, 0xff
jne 0x49a90f
mov ebp, 1
jmp 0x49a911
xor ebp, ebp
test edi, edi
jne 0x49a91d
test ebp, ebp
je 0x49a9ce
mov ecx, dword [0x4c93a4]
inc ecx
push ecx
lea ecx, [esp + 0x1dc0]
call fcn.0040aea0
mov dword [esp + 0x2654], 1
mov esi, dword [esp + 0x1dbc]
mov edx, 2
xor ecx, ecx
cmp dword [0x4c93a4], edx
jbe 0x49a988
lea eax, [ebx + ebp + 2]
sub edi, ebp
jmp 0x49a960
movsx bx, byte [edi + eax]
mov ebp, 0x100
imul bx, bp
movsx bp, byte [eax]
add bx, bp
mov word [esi + ecx*2], bx
add edx, 2
inc ecx
add eax, 2
cmp edx, dword [0x4c93a4]
jb 0x49a960
xor edx, edx
mov word [esi + ecx*2], dx
mov eax, dword [0x4c93a4]
mov ecx, dword [0x4c9824]
dec eax
push eax
push ecx
push esi
call fcn.0046d7a0
mov edx, dword [0x4c93a4]
mov eax, dword [0x4c9824]
mov byte [eax + edx - 1], 0
mov dword [esp + 0x2654], 0xffffffff
test esi, esi
je 0x49a9ca
push esi
call fcn.0049dbfd
add esp, 4
mov esi, dword [esp + 0x14]
push esi
call fcn.0049f426
add esp, 4
xor ebp, ebp
mov esi, dword [0x4c9820]
mov eax, dword [0x4c939c]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov edi, eax
cmp esi, ebp
je 0x49aab0
mov ebp, dword [esp + 0x20]
cmp dword [0x4c9814], 0
jne 0x49aade
mov ecx, 0x800
test word [esi + 4], cx
jne 0x49aade
movzx eax, word [esi]
push eax
shr eax, 8
push eax
call fcn.0049afa0
test al, al
je 0x49aade
mov edx, dword [esi + 0x48]
push 0x400
push edx
lea eax, [esp + 0x21d0]
push eax
mov bl, 1
call fcn.00465320
mov eax, dword [esi + 0x48]
push eax
push eax
call sub.USER32.dll_CharToOemA
push ebp
push esi
call fcn.0049bcc0
test eax, eax
jne 0x49aae5
test bl, bl
je 0x49aa72
mov edx, dword [esi + 0x48]
lea ecx, [esp + 0x21c8]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x49aa68
mov ecx, dword [esi + 0x24]
add ecx, dword [esi + 0x20]
mov edx, dword [0x4c939c]
add ecx, dword [esi + 0x18]
cmp byte [esp + 0x14], 0
lea eax, [edx + ecx + 0x2e]
mov dword [0x4c939c], eax
jne 0x49aa96
call fcn.004458e0
mov esi, dword [esi + 0x58]
inc dword [esp + 0x14]
test esi, esi
jne 0x49a9f8
mov ebx, dword [esp + 0x14]
mov eax, dword [0x4c939c]
xor ebp, ebp
mov esi, dword [esp + 0x20]
mov edx, dword [0x4c9824]
mov ecx, dword [0x4c93a4]
push esi
push edx
push ecx
push edi
sub eax, edi
push eax
push ebx
call fcn.0049bf80
cmp eax, ebp
je 0x49aaf2
mov edx, dword [0x5007ac]
push edx
push eax
jmp 0x499b01
xor bl, bl
jmp 0x49aa4b
mov ecx, dword [0x5007ac]
push ecx
push eax
jmp 0x499b01
push esi
mov dword [0x5007a4], ebp
call fcn.0049f426
add esp, 4
test eax, eax
je 0x49ab12
mov eax, dword [0x5007ac]
push eax
push 0xa
jmp 0x499b01
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x49ab23
push eax
call fcn.0049f426
add esp, 4
call fcn.00420eb0
cmp dword [0x4dc178], ebp
je 0x49ac30
mov ecx, dword [0x5007a8]
mov edx, dword [0x5007ac]
push ecx
push edx
call fcn.0042fd00
mov eax, dword [0x5007ac]
push eax
call fcn.0049dbfd
mov eax, dword [0x5007a8]
add esp, 4
mov dword [0x5007ac], ebp
cmp eax, ebp
je 0x49ab6d
push eax
call fcn.0049dbfd
add esp, 4
mov dword [0x5007a8], ebp
cmp ebx, ebp
jne 0x49ab8a
mov ecx, dword [0x4c93b4]
mov edx, dword [0x4c93b8]
push ecx
push edx
call fcn.0042fd00
mov eax, dword [esp + 0x1db0]
cmp eax, ebp
je 0x49aba8
mov ecx, dword [0x4c93b8]
push eax
mov eax, dword [0x4c93b4]
push eax
push ecx
call fcn.0042fa20
cmp byte [0x4e5760], 0
je 0x49abf0
mov esi, dword [0x4c9820]
cmp esi, ebp
je 0x49abf0
mov edi, 1
cmp dword [esi + 0x50], edi
je 0x49abca
cmp dword [esi + 0x54], ebp
je 0x49abe9
mov edx, dword [esi + 0x38]
push edx
call fcn.00499640
cmp eax, 0xffffffff
je 0x49abe9
test al, 0x20
je 0x49abe9
and eax, 0xffffffdf
push eax
mov eax, dword [esi + 0x38]
push eax
call fcn.004996d0
mov esi, dword [esi + 0x58]
cmp esi, ebp
jne 0x49abc0
mov eax, dword [esp + 0x24]
neg eax
sbb eax, eax
and eax, 0x12
push eax
lea ecx, [esp + 0xd14]
call fcn.00499770
mov ecx, dword [esp + 0x264c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2634]
xor ecx, esp
call fcn.0049dea6
add esp, 0x2644
ret
cmp dword [0x4c9814], ebp
je 0x49ad6d
mov eax, dword [str.rebuilt.]
mov ecx, dword [0x4b392c]
mov dl, byte [0x4b3930]
mov dword [esp + 0x1dc8], eax
mov eax, dword [0x4c93b8]
push eax
mov dword [esp + 0x1dd0], ecx
mov byte [esp + 0x1dd4], dl
call fcn.0044db30
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x49ac70
lea edi, [esp + 0x1dc8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x49ac81
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]
push 1
lea ecx, [esp + 0x1dcc]
push ecx
call fcn.0044e6c0
push ebp
lea edx, [esp + 0x1dcc]
push edx
call fcn.0042f950
test al, al
je 0x49acfa
lea eax, [esp + 0x1dc8]
push eax
lea ecx, [esp + 0x1dc0]
push ecx
call fcn.0040a270
mov al, byte [esp + 0x1dbc]
cmp al, 0x4e
je 0x49ad4d
cmp al, 0x43
je 0x49ad4d
push ebp
push ebp
lea edx, [esp + 0x1dd0]
push edx
call fcn.0042fa20
lea eax, [esp + 0x1dc8]
push eax
call fcn.00430a30
cmp byte [esp + 0x1dc8], 0
je 0x49ab47
mov ecx, dword [0x5007ac]
push ebp
lea eax, [esp + 0x1dcc]
push eax
push ebp
push ecx
call fcn.0042fc50
test al, al
jne 0x49ab47
mov eax, dword [0x5007ac]
lea edx, [esp + 0x1dc8]
push edx
push eax
push 0x207
call fcn.0045bde0
push eax
push ebp
call fcn.00445390
add esp, 0x10
jmp 0x49ab47
mov ecx, dword [0x5007a8]
mov edx, dword [0x5007ac]
push ecx
push edx
call fcn.0042fd00
mov byte [esp + 0x1dc8], 0
jmp 0x49ab47
mov ecx, dword [0x5007ac]
mov edx, dword [0x4c93b4]
mov eax, dword [0x4c93b8]
push ecx
push edx
push eax
call fcn.004317a0
mov esi, eax
cmp esi, ebp
je 0x49ab47
mov ecx, dword [0x4c93b8]
mov edx, dword [0x5007ac]
push ecx
push edx
push 0x207
call fcn.0045bde0
push eax
push ebp
call fcn.00445390
mov eax, dword [0x4c93b8]
add esp, 0x10
push eax
mov ecx, 0x4c9364
call fcn.004283c0
cmp esi, 0xf
jne 0x49adf0
mov ecx, dword [0x4c93b4]
mov edx, dword [0x4c93b8]
push ecx
push edx
call fcn.0042f950
test al, al
je 0x49adf0
mov eax, dword [0x5007a8]
mov ecx, dword [0x5007ac]
push eax
push ecx
call fcn.0042fd00
mov edx, dword [0x5007ac]
push edx
call fcn.0049dbfd
mov eax, dword [0x5007a8]
add esp, 4
mov dword [0x5007ac], ebp
cmp eax, ebp
je 0x49ae17
push eax
call fcn.0049dbfd
add esp, 4
push 0x4b1914
mov dword [0x5007a8], ebp
push esi
jmp 0x499b01