Function at 0x499bd0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4b00f6
mov eax, dword fs:[0]
push eax
mov eax, 0x2638
call fcn.0049e650
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.00433ac0
mov eax, dword [0x4e5758]
movsx eax, byte [eax + 0x4c0324]
mov cl, byte [0x4e697c]
xor ebp, ebp
mov dword [0x4bedbc], eax
neg eax
sbb eax, eax
mov dword [0x4bedb8], eax
mov al, byte [0x4e697b]
mov dword [0x5007f0], ebp
mov dword [0x5007f4], ebp
mov dword [0x5007dc], ebp
mov dword [0x5007d8], ebp
mov dword [0x4c9398], ebp
mov dword [0x4c9828], ebp
mov dword [0x4bedc0], 0x4c9828
mov dword [0x4c93b8], ebp
mov dword [0x4c93b4], ebp
mov dword [0x5007d4], ebp
mov dword [0x5007d0], ebp
cmp al, 0x52
jne 0x499c93
mov dword [0x4c9814], 3
test cl, cl
je 0x499c99
mov dword [0x4c9814], ebp
xor edx, edx
cmp al, 0x53
sete dl
mov ebx, 1
mov dword [0x4c981c], edx
cmp al, 0x52
jne 0x499cba
mov dword [0x4c9818], ebx
cmp cl, 0x4e
je 0x499cc0
mov dword [0x4c9818], ebp
cmp byte [0x4e75ac], 0
je 0x499e6b
push 0x4e75ac
call fcn.0049b380
mov dword [0x4c93b8], eax
cmp eax, ebp
jne 0x499cf6
mov ecx, 0x4c9364
call fcn.00428000
push 0x4b1914
push 4
call fcn.00499660
cmp word [0x4e79ac], bp
je 0x499d12
push 0x4e79ac
call fcn.0049b400
mov dword [0x4c93b4], eax
cmp eax, ebp
je 0x499ce0
cmp byte [0x4e57b1], 0
je 0x499d4f
mov eax, dword [0x4c93b8]
push eax
call fcn.0044d420
test al, al
je 0x499d4f
movsx ecx, byte [0x4e697b]
push ecx
push 0x4b1dc8
call fcn.0049dd30
add esp, 8
test eax, eax
je 0x499d4f
mov edx, dword [0x4c93b8]
push edx
call fcn.00430bd0
cmp dword [0x4c9814], ebp
je 0x499de9
mov eax, dword [str.rebuilt.]
mov ecx, dword [0x4b38f0]
mov dl, byte [0x4b38f4]
mov dword [esp + 0x1dc8], eax
mov eax, dword [0x4c93b8]
push eax
mov dword [esp + 0x1dd0], ecx
mov byte [esp + 0x1dd4], dl
call fcn.0044d530
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x499d90
lea edi, [esp + 0x1dc8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x499da1
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.0045b8f0
push eax
lea edx, [esp + 0x21d0]
push edx
call fcn.0049e0d5
add esp, 0xc
lea eax, [esp + 0x21c8]
push eax
call fcn.0047f3d0
call fcn.0049c8b0
mov esi, eax
cmp esi, ebp
je 0x499e66
lea eax, [esi - 2]
cmp eax, 9
ja case.0x499e03.5
movzx ecx, byte [eax + 0x49b028]
jmp dword [ecx*4 + 0x49b018]
push 0x2ad
call fcn.0045b8f0
mov edx, dword [0x4c93b8]
push eax
push edx
call fcn.0048cce0
mov ecx, dword [0x4c93b8]
add esp, 8
push ecx
push esi
jmp 0x499cf1
mov ecx, 0x4c9364
call fcn.00428000
mov ecx, dword [0x4c93b8]
push ecx
push esi
jmp 0x499cf1
mov eax, dword [0x4c93b8]
push eax
push ebp
mov ecx, 0x4c9364
call fcn.00428150
mov ecx, dword [0x4c93b8]
push ecx
push esi
jmp 0x499cf1
mov al, byte [0x4e697b]
cmp al, 0x44
jne 0x499e8d
call fcn.00475f30
cmp eax, ebp
je 0x499e88
cmp eax, 0xffffffff
je 0x499e88
push 0x4b1914
push eax
jmp 0x499cf1
mov al, byte [0x4e697b]
cmp al, 0x41
jne 0x499ebb
call fcn.00475ca0
cmp byte [0x4e5775], 0
jne 0x499ea8
cmp byte [0x4e5774], 0
je 0x499ebb
mov eax, dword [0x4c9820]
cmp eax, ebp
je 0x499ebb
mov dword [eax + 0x50], ebx
mov eax, dword [eax + 0x58]
cmp eax, ebp
jne 0x499eb1
call fcn.00431120
cmp dword [0x4c93a8], ebp
je 0x499ed7
mov edx, dword [0x4c93a0]
push edx
call fcn.0049de1d
add esp, 4
mov esi, dword [0x4c9820]
mov dword [0x5007e0], ebp
mov dword [0x5007e4], ebp
mov dword [0x5007e8], ebp
mov dword [0x5007ec], ebp
mov dword [esp + 0x18], ebp
cmp esi, ebp
je 0x49a0e3
jmp 0x499f15
mov ebx, 1
cmp dword [esi + 0x50], ebp
je 0x49a0d8
mov ecx, dword [esi + 0x38]
push 0x400
lea eax, [esp + 0x21cc]
push eax
push ecx
call fcn.0044e150
cmp byte [0x4e5771], 0
je 0x499f55
mov edx, dword [esi + 0x38]
push edx
call fcn.00499830
test al, 0x20
jne 0x499f55
mov dword [esi + 0x50], ebp
mov dword [esi + 0x54], ebx
jmp 0x49a0d8
mov eax, dword [esi + 0x14]
add dword [0x5007e8], eax
adc dword [0x5007ec], ebp
cmp byte [0x4e697b], 0x44
je 0x49a0d4
mov ecx, dword [esi + 0x38]
push ebp
push ebp
push ecx
call fcn.00475ae0
mov edx, dword [0x5007f0]
mov ecx, dword [0x5007f4]
cmp eax, ebp
je 0x499faf
cmp eax, edx
jb 0x499faf
cmp ecx, ebp
je 0x499f98
cmp eax, ecx
jae 0x499faf
cmp byte [0x4e5775], 0
jne 0x499faa
cmp byte [0x4e5774], 0
je 0x499fea
cmp eax, dword [esi + 8]
ja 0x499fea
mov dword [esi + 0x50], ebp
cmp eax, ebp
je 0x499fc9
cmp eax, edx
jb 0x499fc9
cmp ecx, ebp
je 0x499fc2
cmp eax, ecx
jae 0x499fc9
mov eax, 1
jmp 0x499fcb
xor eax, eax
mov dword [esi + 0x54], eax
cmp eax, ebp
je 0x49a0d8
mov edx, dword [esi + 0x14]
sub dword [0x5007e8], edx
sbb dword [0x5007ec], ebp
jmp 0x49a0d8
cmp byte [0x4e697b], 0x44
je 0x49a0d4
mov eax, dword [0x4e5754]
cmp eax, ebp
je 0x49a0d4
cmp eax, 2
sete bl
cmp eax, 4
jne case.default.0x49a09a
xor eax, eax
jmp 0x49a020
mov cl, byte [esp + eax + 0x21c8]
mov byte [esp + eax + 0x1dc8], cl
inc eax
test cl, cl
jne 0x49a020
lea eax, [esp + 0x1dc8]
push eax
mov edi, 2
call fcn.0044d600
movsx ecx, byte [eax]
push ecx
call fcn.0044d340
test al, al
jne 0x49a092
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.0040a6a0
movsx eax, byte [esp + 0x1db0]
push eax
mov eax, dword [str.YNANC]
push eax
call fcn.0049dd30
sub eax, dword [str.YNANC]
add esp, 8
inc eax
mov edi, eax
add edi, 0xfffffffe
cmp edi, 3
ja case.default.0x49a09a
jmp dword [edi*4 + 0x49b034]
mov dword [0x4e5754], 1
jmp case.default.0x49a09a
mov dword [0x4e5754], 2
mov dword [esi + 0x50], ebp
jmp 0x49a0d8
push 0xff
mov ecx, 0x4c9364
call fcn.004281b0
test bl, bl
je 0x49a0d4
mov dword [esi + 0x50], ebp
jmp 0x49a0d8
inc dword [esp + 0x18]
mov esi, dword [esi + 0x58]
cmp esi, ebp
jne 0x499f10
lea ecx, [esp + 0x1924]
call fcn.00467be0
lea ecx, [esp + 0x1948]
call fcn.00467be0
lea ecx, [esp + 0x196c]
call fcn.00467be0
mov ecx, dword [0x4c93b4]
mov edx, dword [0x4c93b8]
push ecx
mov dword [esp + 0x1db4], ebp
push edx
xor ebp, ebp
call fcn.0042f890
test al, al
je 0x49a15c
mov ecx, dword [0x4c93b4]
mov edx, dword [0x4c93b8]
push ebp
lea eax, [esp + 0xd14]
push eax
push ecx
push edx
call fcn.00433200
test al, al
je 0x49a15c
mov eax, dword [esp + 0x1910]
mov ebp, dword [esp + 0x1914]
mov dword [esp + 0x1db0], eax
mov esi, dword [0x4c9828]
test esi, esi
je 0x49a272
lea ebx, [ebx]
mov ecx, dword [esi + 0xc]
add dword [0x5007e8], ecx
adc dword [0x5007ec], 0
mov edi, dword [esi]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x49a187
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 0x49a30f
jl 0x49a1bf
cmp dword [esp + 0x1db0], 0x80000000
jae 0x49a30f
push 0
push 0
push edi
call fcn.00475ae0
mov edi, eax
test edi, edi
sete bl
cmp byte [0x4e5771], 0
je 0x49a1e5
mov ecx, dword [esi]
push ecx
call fcn.00499830
test al, 0x20
je 0x49a241
mov al, byte [0x4e697b]
cmp al, 0x44
je 0x49a241
cmp al, 0x41
jne 0x49a1fb
cmp byte [0x4e5774], 0
jne 0x49a241
mov edx, dword [esi]
push 1
push 1
push edx
mov ecx, 0x4e2eb0
call fcn.0041bbd0
test al, al
jne 0x49a241
test bl, bl
jne 0x49a245
cmp edi, dword [0x5007f0]
jb 0x49a262
mov eax, dword [0x5007f4]
test eax, eax
je 0x49a229
cmp edi, eax
jae 0x49a262
mov eax, dword [0x4c93b8]
mov ecx, dword [esi + 8]
push eax
push ecx
call fcn.00464e20
test eax, eax
je 0x49a262
mov esi, dword [esi + 0x14]
jmp 0x49a26a
test bl, bl
je 0x49a262
mov edx, dword [esi + 8]
push edx
push 0x206
call fcn.0045b8f0
push eax
mov eax, dword [0x4c93b8]
push eax
call fcn.0048cce0
add esp, 0xc
push esi
call fcn.00431040
mov esi, eax
test esi, esi
jne 0x49a170
cmp dword [esp + 0x18], 0
mov eax, dword [0x4c9820]
jne 0x49a384
cmp dword [0x4c9828], 0
jne 0x49a384
cmp dword [0x4c9818], 0
jne 0x49a384
mov ecx, dword [0x4e579c]
mov edx, dword [0x4c9814]
mov esi, dword [0x4c981c]
test eax, eax
je 0x49a2d7
test ecx, ecx
jne 0x49a384
test edx, edx
jne 0x49a450
test esi, esi
jne 0x49a391
cmp byte [0x4e42c0], 0
jne 0x49a391
cmp byte [0x4e5775], 0
jne 0x49a37d
cmp byte [0x4e5774], 0
jne 0x49a37d
test eax, eax
jne 0x49a335
test ecx, ecx
jne 0x49a301
test edx, edx
jne 0x49a301
test esi, esi
je 0x49a335
mov edx, dword [0x4c93b8]
push edx
push 0xd
jmp 0x499cf1
push 0x3b7
call fcn.0045b8f0
mov ecx, dword [0x4c93b8]
push eax
push ecx
call fcn.0048cce0
add esp, 8
push 0x4b1914
push 5
jmp 0x499cf1
mov al, byte [0x4e697b]
cmp al, 0x41
jne 0x49a351
push 0x340
call fcn.0045b8f0
push eax
mov eax, dword [0x4c93b8]
push eax
jmp 0x49a367
cmp al, 0x44
jne 0x49a36f
push 0x345
call fcn.0045b8f0
mov ecx, dword [0x4c93b8]
push eax
push ecx
call fcn.0048cce0
add esp, 8
mov edx, dword [0x4c93b8]
push edx
push 0xc
jmp 0x499cf1
push 0
jmp 0x49adec
cmp dword [0x4c9814], 0
jne 0x49a450
cmp byte [0x4e2ec0], 0
je 0x49a3e6
test eax, eax
jne 0x49a3aa
cmp dword [0x4c93b0], eax
je 0x49a450
mov edx, dword [0x4c93b4]
mov eax, dword [0x4c93b8]
push 0
push 0x4b3bf4
push edx
push eax
call fcn.00430040
test eax, eax
jne 0x49a407
mov eax, dword [0x4c93b8]
push eax
push eax
mov ecx, 0x4c9364
call fcn.00428060
mov ecx, dword [0x4c93b8]
push ecx
push 0xf
jmp 0x499cf1
test eax, eax
jne 0x49a3aa
cmp dword [0x4c93b0], eax
jne 0x49a3aa
mov ecx, dword [0x4c93b8]
push eax
mov eax, dword [0x4c93b4]
push 0x4b1ba8
push eax
push ecx
jmp 0x49a3be
push eax
call fcn.0049f646
mov edx, dword [0x4c93b4]
mov eax, dword [0x4c93b8]
add esp, 4
push edx
push eax
call fcn.0042f940
cmp dword [0x4c9820], 0
mov dword [esp + 0x1db0], eax
jne 0x49a45b
cmp dword [0x4c93b0], 0
jne 0x49a45b
mov ecx, dword [0x4c93b4]
mov edx, dword [0x4c93b8]
push ecx
push edx
call fcn.0042fc50
jmp 0x49a45b
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.0042f890
mov bl, al
cmp dword [0x4c9820], edi
jne 0x49a48d
cmp dword [0x4c93b0], edi
je 0x49a4da
mov edx, dword [0x4c93b4]
mov eax, dword [0x4c93b8]
push edi
push 0x4b1948
push edx
push eax
call fcn.00430040
mov esi, eax
mov dword [0x5007d0], eax
mov dword [esp + 0x18], esi
cmp eax, edi
jne 0x49a4da
mov ecx, dword [0x4c93b8]
push ecx
push 0x1f5
call fcn.0045b8f0
push eax
call fcn.0048c7e0
add esp, 8
push 0x4b1914
push 0xd
jmp 0x499cf1
test bl, bl
je 0x49a4ec
mov edx, dword [0x4c93b8]
push edx
call fcn.00431510
jmp 0x49a4fa
mov eax, dword [0x4c93b8]
push eax
call fcn.004ac4fd
add esp, 4
mov dword [0x5007dc], eax
cmp eax, edi
je 0x499ce0
test bl, bl
jne 0x49a573
mov ecx, dword [0x4c93b4]
cmp ecx, edi
je 0x49a573
push ecx
call fcn.0046dc00
mov ecx, eax
mov dword [0x5007d8], ecx
cmp ecx, edi
je 0x499ce0
mov eax, dword [0x5007dc]
push edi
push 0x4b1ba8
push ecx
push eax
call fcn.00430040
mov ecx, eax
mov dword [esp + 0x20], ecx
mov dword [0x5007d4], ecx
cmp ecx, edi
jne 0x49a57b
mov ecx, dword [0x5007dc]
push ecx
push 0x1f6
call fcn.0045b8f0
push eax
call fcn.0048c7e0
add esp, 8
push 0x4b1914
push 0xa
jmp 0x499cf1
mov ecx, dword [0x5007d8]
jmp 0x49a530
mov eax, dword [0x4c93b0]
cmp eax, edi
je 0x49a5ad
push eax
push ecx
push esi
call fcn.004315f0
cmp eax, edi
je 0x49a5a8
mov ecx, dword [0x5007dc]
cmp eax, 0xa
je 0x49a5a1
mov ecx, dword [0x4c93b8]
push ecx
push eax
jmp 0x499cf1
mov eax, dword [0x4c93b0]
mov dword [0x4c939c], eax
mov al, byte [0x4e697b]
mov dword [esp + 0x24], edi
cmp al, 0x41
jne 0x49a5db
mov eax, dword [0x4c93b8]
xor edx, edx
cmp dword [0x4c9820], edi
setne dl
push edx
push eax
call fcn.00409830
mov al, byte [0x4e697b]
mov esi, dword [0x4c9820]
mov dword [esp + 0x14], 0x4c9820
cmp esi, edi
je 0x49a8ce
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
jmp 0x49a605
mov al, byte [0x4e697b]
mov edi, 1
cmp dword [esi + 0x50], edi
jne 0x49a705
cmp al, 0x41
jne 0x49a67e
mov ecx, dword [esi + 0x4c]
push 0
push 0
push edi
push 0
push ecx
call fcn.00409870
push ebp
push esi
call fcn.0049d660
test eax, eax
je 0x49a640
cmp eax, 0x12
je 0x49a64e
cmp eax, 0xffffffff
jne 0x49a979
cmp eax, 0x12
je 0x49a64e
cmp eax, 0xffffffff
jne 0x49a8b9
mov edx, dword [esi + 0x4c]
mov eax, dword [0x4c93b8]
push edx
push eax
mov ecx, 0x4c9364
mov dword [esp + 0x2c], edi
call fcn.00428020
push ebp
push ebx
push esi
call fcn.0049c2c0
test eax, eax
jne 0x499e7d
mov dword [esi + 0x50], eax
jmp 0x49a8b9
cmp dword [0x4dc178], 0
jne 0x49a8ce
mov ecx, dword [esi + 0x4c]
push 0
push 0
push ecx
call fcn.00409980
mov edx, dword [esi + 0x48]
mov edi, dword [esi + 0x58]
push edx
call fcn.0049de1d
mov eax, dword [esi + 0x4c]
push eax
call fcn.0049de1d
add esp, 8
cmp dword [esi + 0x1c], 0
je 0x49a6c2
mov ecx, dword [esi + 0x3c]
push ecx
call fcn.0049de1d
add esp, 4
cmp dword [esi + 0x20], 0
je 0x49a6d9
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x3c]
je 0x49a6d9
push eax
call fcn.0049de1d
add esp, 4
cmp dword [esi + 0x24], 0
je 0x49a6eb
mov edx, dword [esi + 0x44]
push edx
call fcn.0049de1d
add esp, 4
push esi
call fcn.0049de1d
mov eax, dword [esp + 0x18]
add esp, 4
mov dword [eax], edi
dec dword [0x4c93a8]
jmp 0x49a8c0
cmp dword [0x4dc178], 0
jne 0x49a8ce
cmp al, 0x44
jne 0x49a722
mov ecx, dword [esi + 0x4c]
push edi
push 0
push ecx
call fcn.00409980
cmp dword [0x4c9818], 0
mov edi, dword [0x4c9814]
je 0x49a8a3
lea ecx, [esp + 0x28]
call fcn.00401f60
mov dword [esp + 0x2654], 0
push 0xce8
lea edx, [esp + 0x2c]
push 0
push edx
call fcn.0049e680
mov eax, dword [esi + 0x48]
add esp, 0xc
push eax
call fcn.0044d600
movsx ecx, byte [eax]
push ecx
call fcn.0044d340
push 0x3ff
lea edx, [esp + 0x5c]
mov byte [esp + 0x23], al
mov eax, dword [esi + 0x48]
push edx
push eax
call fcn.0044e150
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 0x49a7d8
test dl, dl
je 0x49a7d4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a7d8
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a7b8
xor eax, eax
jmp 0x49a7dd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov edx, 0x800
sete byte [esp + 0x1e]
test word [esi + 4], dx
jne 0x49a804
movzx eax, word [esi]
push eax
shr eax, 8
push eax
call fcn.0049b190
test al, al
je 0x49a804
mov bl, 1
jmp 0x49a806
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 0x49a88b
lea edx, [esp + 0x28]
push edx
push 0x4e2eb0
call fcn.0044f710
test al, al
je 0x49a88b
cmp byte [esp + 0x1f], 0
je 0x49a83e
lea eax, [esp + 0x58]
push eax
call fcn.0044d9b0
push 0x400
push 0
lea ecx, [esp + 0x60]
push ecx
call fcn.0044e1e0
lea edx, [esp + 0x58]
push edx
mov eax, edx
push eax
call sub.USER32.dll_OemToCharA
test bl, bl
je 0x49a868
mov ecx, 0xb17
mov word [esi], cx
mov edx, dword [esi + 0x48]
push edx
call fcn.0049de1d
lea eax, [esp + 0x5c]
push eax
call fcn.004ac4fd
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.0049c2c0
mov dword [0x4c9814], edi
test eax, eax
jne 0x499e7d
add esi, 0x58
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
test esi, esi
jne 0x49a600
mov edi, dword [0x4c9828]
test edi, edi
je 0x49a9e1
xor ebx, ebx
cmp dword [0x4dc178], ebx
jne 0x49a9e1
push 0x5c
call fcn.0049e19f
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x499ce0
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.00409870
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.0049d660
cmp eax, ebx
je 0x49a95d
cmp eax, 0x12
je 0x49a991
cmp eax, 0xffffffff
jne 0x49aa3a
cmp eax, 0x12
je 0x49a991
cmp eax, 0xffffffff
je 0x49a991
mov ecx, dword [esp + 0x14]
mov dword [ecx], esi
inc dword [0x4c93a8]
mov dword [esp + 0x14], ebp
jmp 0x49a9d1
cmp dword [0x4dc178], 0
jne 0x49a8ce
push 0x4b1914
push eax
jmp 0x499cf1
mov edx, dword [esi + 0x4c]
mov eax, dword [0x4c93b8]
push edx
push eax
mov ecx, 0x4c9364
mov dword [esp + 0x2c], 1
call fcn.00428020
mov ecx, dword [esi + 0x38]
push ecx
call fcn.0049de1d
mov edx, dword [esi + 0x48]
push edx
call fcn.0049de1d
mov eax, dword [esi + 0x4c]
push eax
call fcn.0049de1d
push esi
call fcn.0049de1d
add esp, 0x10
push edi
call fcn.00431040
mov edi, eax
cmp edi, ebx
jne 0x49a8de
xor ebp, ebp
cmp byte [0x4e42c0], 0
je 0x49abc9
cmp dword [0x4c9814], ebp
jne 0x49abc9
push 0x4b1948
push 0x4e42c0
call fcn.0049f968
mov esi, eax
add esp, 8
mov dword [esp + 0x14], esi
cmp esi, ebp
jne 0x49aa4d
mov ecx, dword [0x4c93b8]
push 0x4e42c0
push ecx
mov ecx, 0x4c9364
call fcn.00428020
push 0x4b1914
push 0x12
jmp 0x499cf1
cmp dword [0x4dc178], ebx
jne 0x49a9e1
push 0x4c93c0
push eax
jmp 0x499cf1
cmp dword [0x4c93a4], ebp
je 0x49aa64
mov edx, dword [0x4c9824]
push edx
call fcn.0049de1d
add esp, 4
push 0x8000
call fcn.0049e19f
add esp, 4
mov dword [0x4c9824], eax
cmp eax, ebp
je 0x499ce0
push esi
push 0x7fff
push 1
push eax
call fcn.0049fc19
mov ecx, dword [0x4c9824]
mov dword [0x4c93a4], eax
add esp, 0x10
mov byte [ecx + eax], 0
cmp dword [0x4e46c0], 2
jne 0x49aab4
mov eax, dword [0x4c9824]
push eax
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x4e46c0], 3
jne 0x49abbe
mov ebx, dword [0x4c9824]
movsx eax, byte [ebx]
cmp eax, 0xff
jne 0x49aae4
movsx edx, byte [ebx + 1]
cmp edx, 0xfe
jne 0x49aae4
mov edi, 1
jmp 0x49aae6
xor edi, edi
cmp eax, 0xfe
jne 0x49aaff
movsx eax, byte [ebx + 1]
cmp eax, 0xff
jne 0x49aaff
mov ebp, 1
jmp 0x49ab01
xor ebp, ebp
test edi, edi
jne 0x49ab0d
test ebp, ebp
je 0x49abbe
mov ecx, dword [0x4c93a4]
inc ecx
push ecx
lea ecx, [esp + 0x1dc0]
call fcn.0040af10
mov dword [esp + 0x2654], 1
mov esi, dword [esp + 0x1dbc]
mov edx, 2
xor ecx, ecx
cmp dword [0x4c93a4], edx
jbe 0x49ab78
lea eax, [ebx + ebp + 2]
sub edi, ebp
jmp 0x49ab50
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 0x49ab50
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.0046d2f0
mov edx, dword [0x4c93a4]
mov eax, dword [0x4c9824]
mov byte [eax + edx - 1], 0
mov dword [esp + 0x2654], 0xffffffff
test esi, esi
je 0x49abba
push esi
call fcn.0049de1d
add esp, 4
mov esi, dword [esp + 0x14]
push esi
call fcn.0049f646
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 0x49aca0
mov ebp, dword [esp + 0x20]
cmp dword [0x4c9814], 0
jne 0x49acce
mov ecx, 0x800
test word [esi + 4], cx
jne 0x49acce
movzx eax, word [esi]
push eax
shr eax, 8
push eax
call fcn.0049b190
test al, al
je 0x49acce
mov edx, dword [esi + 0x48]
push 0x400
push edx
lea eax, [esp + 0x21d0]
push eax
mov bl, 1
call fcn.00464e60
mov eax, dword [esi + 0x48]
push eax
push eax
call sub.USER32.dll_CharToOemA
push ebp
push esi
call fcn.0049bec0
test eax, eax
jne 0x49acd5
test bl, bl
je 0x49ac62
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 0x49ac58
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 0x49ac86
call fcn.00445340
mov esi, dword [esi + 0x58]
inc dword [esp + 0x14]
test esi, esi
jne 0x49abe8
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.0049c180
cmp eax, ebp
je 0x49ace2
mov edx, dword [0x5007dc]
push edx
push eax
jmp 0x499cf1
xor bl, bl
jmp 0x49ac3b
mov ecx, dword [0x5007dc]
push ecx
push eax
jmp 0x499cf1
push esi
mov dword [0x5007d4], ebp
call fcn.0049f646
add esp, 4
test eax, eax
je 0x49ad02
mov eax, dword [0x5007dc]
push eax
push 0xa
jmp 0x499cf1
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x49ad13
push eax
call fcn.0049f646
add esp, 4
call fcn.00420d90
cmp dword [0x4dc178], ebp
je 0x49ae20
mov ecx, dword [0x5007d8]
mov edx, dword [0x5007dc]
push ecx
push edx
call fcn.0042fc50
mov eax, dword [0x5007dc]
push eax
call fcn.0049de1d
mov eax, dword [0x5007d8]
add esp, 4
mov dword [0x5007dc], ebp
cmp eax, ebp
je 0x49ad5d
push eax
call fcn.0049de1d
add esp, 4
mov dword [0x5007d8], ebp
cmp ebx, ebp
jne 0x49ad7a
mov ecx, dword [0x4c93b4]
mov edx, dword [0x4c93b8]
push ecx
push edx
call fcn.0042fc50
mov eax, dword [esp + 0x1db0]
cmp eax, ebp
je 0x49ad98
mov ecx, dword [0x4c93b8]
push eax
mov eax, dword [0x4c93b4]
push eax
push ecx
call fcn.0042f970
cmp byte [0x4e5770], 0
je 0x49ade0
mov esi, dword [0x4c9820]
cmp esi, ebp
je 0x49ade0
mov edi, 1
cmp dword [esi + 0x50], edi
je 0x49adba
cmp dword [esi + 0x54], ebp
je 0x49add9
mov edx, dword [esi + 0x38]
push edx
call fcn.00499830
cmp eax, 0xffffffff
je 0x49add9
test al, 0x20
je 0x49add9
and eax, 0xffffffdf
push eax
mov eax, dword [esi + 0x38]
push eax
call fcn.004998c0
mov esi, dword [esi + 0x58]
cmp esi, ebp
jne 0x49adb0
mov eax, dword [esp + 0x24]
neg eax
sbb eax, eax
and eax, 0x12
push eax
lea ecx, [esp + 0xd14]
call fcn.00499960
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.0049e0c6
add esp, 0x2644
ret
cmp dword [0x4c9814], ebp
je 0x49af5d
mov eax, dword [str.rebuilt.]
mov ecx, dword [0x4b38f0]
mov dl, byte [0x4b38f4]
mov dword [esp + 0x1dc8], eax
mov eax, dword [0x4c93b8]
push eax
mov dword [esp + 0x1dd0], ecx
mov byte [esp + 0x1dd4], dl
call fcn.0044d530
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x49ae60
lea edi, [esp + 0x1dc8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x49ae71
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.0044e0c0
push ebp
lea edx, [esp + 0x1dcc]
push edx
call fcn.0042f890
test al, al
je 0x49aeea
lea eax, [esp + 0x1dc8]
push eax
lea ecx, [esp + 0x1dc0]
push ecx
call fcn.0040a2e0
mov al, byte [esp + 0x1dbc]
cmp al, 0x4e
je 0x49af3d
cmp al, 0x43
je 0x49af3d
push ebp
push ebp
lea edx, [esp + 0x1dd0]
push edx
call fcn.0042f970
lea eax, [esp + 0x1dc8]
push eax
call fcn.00430980
cmp byte [esp + 0x1dc8], 0
je 0x49ad37
mov ecx, dword [0x5007dc]
push ebp
lea eax, [esp + 0x1dcc]
push eax
push ebp
push ecx
call fcn.0042fba0
test al, al
jne 0x49ad37
mov eax, dword [0x5007dc]
lea edx, [esp + 0x1dc8]
push edx
push eax
push 0x207
call fcn.0045b8f0
push eax
push ebp
call fcn.0048cce0
add esp, 0x10
jmp 0x49ad37
mov ecx, dword [0x5007d8]
mov edx, dword [0x5007dc]
push ecx
push edx
call fcn.0042fc50
mov byte [esp + 0x1dc8], 0
jmp 0x49ad37
mov ecx, dword [0x5007dc]
mov edx, dword [0x4c93b4]
mov eax, dword [0x4c93b8]
push ecx
push edx
push eax
call fcn.004316f0
mov esi, eax
cmp esi, ebp
je 0x49ad37
mov ecx, dword [0x4c93b8]
mov edx, dword [0x5007dc]
push ecx
push edx
push 0x207
call fcn.0045b8f0
push eax
push ebp
call fcn.0048cce0
mov eax, dword [0x4c93b8]
add esp, 0x10
push eax
mov ecx, 0x4c9364
call fcn.004282f0
cmp esi, 0xf
jne 0x49afe0
mov ecx, dword [0x4c93b4]
mov edx, dword [0x4c93b8]
push ecx
push edx
call fcn.0042f890
test al, al
je 0x49afe0
mov eax, dword [0x5007d8]
mov ecx, dword [0x5007dc]
push eax
push ecx
call fcn.0042fc50
mov edx, dword [0x5007dc]
push edx
call fcn.0049de1d
mov eax, dword [0x5007d8]
add esp, 4
mov dword [0x5007dc], ebp
cmp eax, ebp
je 0x49b007
push eax
call fcn.0049de1d
add esp, 4
push 0x4b1914
mov dword [0x5007d8], ebp
push esi
jmp 0x499cf1