Function at 0x49a130
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4b0626
mov eax, dword fs:[0]
push eax
mov eax, 0x2638
call fcn.0049ebb0
mov eax, dword [0x4c03a0]
xor eax, esp
mov dword [esp + 0x2634], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c03a0]
xor eax, esp
push eax
lea eax, [esp + 0x264c]
mov dword fs:[0], eax
call fcn.00433eb0
mov eax, dword [0x4e57a0]
movsx eax, byte [eax + 0x4c033c]
mov cl, byte [0x4e69c4]
xor ebp, ebp
mov dword [0x4bedd4], eax
neg eax
sbb eax, eax
mov dword [0x4bedd0], eax
mov al, byte [0x4e69c3]
mov dword [0x500838], ebp
mov dword [0x50083c], ebp
mov dword [0x500824], ebp
mov dword [0x500820], ebp
mov dword [0x4c93e0], ebp
mov dword [0x4c9870], ebp
mov dword [0x4bedd8], 0x4c9870
mov dword [0x4c9400], ebp
mov dword [0x4c93fc], ebp
mov dword [0x50081c], ebp
mov dword [0x500818], ebp
cmp al, 0x52
jne 0x49a1f3
mov dword [0x4c985c], 3
test cl, cl
je 0x49a1f9
mov dword [0x4c985c], ebp
xor edx, edx
cmp al, 0x53
sete dl
mov ebx, 1
mov dword [0x4c9864], edx
cmp al, 0x52
jne 0x49a21a
mov dword [0x4c9860], ebx
cmp cl, 0x4e
je 0x49a220
mov dword [0x4c9860], ebp
cmp byte [0x4e75f4], 0
je 0x49a3cb
push 0x4e75f4
call fcn.0049b8e0
mov dword [0x4c9400], eax
cmp eax, ebp
jne 0x49a256
mov ecx, 0x4c93ac
call fcn.004283e0
push 0x4b1914
push 4
call fcn.00499bc0
cmp word [0x4e79f4], bp
je 0x49a272
push 0x4e79f4
call fcn.0049b960
mov dword [0x4c93fc], eax
cmp eax, ebp
je 0x49a240
cmp byte [0x4e57f9], 0
je 0x49a2af
mov eax, dword [0x4c9400]
push eax
call fcn.0044d9e0
test al, al
je 0x49a2af
movsx ecx, byte [0x4e69c3]
push ecx
push 0x4b1dc8
call fcn.0049e290
add esp, 8
test eax, eax
je 0x49a2af
mov edx, dword [0x4c9400]
push edx
call fcn.00430fc0
cmp dword [0x4c985c], ebp
je 0x49a349
mov eax, dword [str.rebuilt.]
mov ecx, dword [0x4b3988]
mov dl, byte [0x4b398c]
mov dword [esp + 0x1dc8], eax
mov eax, dword [0x4c9400]
push eax
mov dword [esp + 0x1dd0], ecx
mov byte [esp + 0x1dd4], dl
call fcn.0044daf0
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x49a2f0
lea edi, [esp + 0x1dc8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x49a301
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.0045be10
push eax
lea edx, [esp + 0x21d0]
push edx
call fcn.0049e635
add esp, 0xc
lea eax, [esp + 0x21c8]
push eax
call fcn.0047f8e0
call fcn.0049ce10
mov esi, eax
cmp esi, ebp
je 0x49a3c6
lea eax, [esi - 2]
cmp eax, 9
ja case.0x49a363.5
movzx ecx, byte [eax + 0x49b588]
jmp dword [ecx*4 + 0x49b578]
push 0x2ad
call fcn.0045be10
mov edx, dword [0x4c9400]
push eax
push edx
call fcn.0048d240
mov ecx, dword [0x4c9400]
add esp, 8
push ecx
push esi
jmp 0x49a251
mov ecx, 0x4c93ac
call fcn.004283e0
mov ecx, dword [0x4c9400]
push ecx
push esi
jmp 0x49a251
mov eax, dword [0x4c9400]
push eax
push ebp
mov ecx, 0x4c93ac
call fcn.00428530
mov ecx, dword [0x4c9400]
push ecx
push esi
jmp 0x49a251
mov al, byte [0x4e69c3]
cmp al, 0x44
jne 0x49a3ed
call fcn.00476430
cmp eax, ebp
je 0x49a3e8
cmp eax, 0xffffffff
je 0x49a3e8
push 0x4b1914
push eax
jmp 0x49a251
mov al, byte [0x4e69c3]
cmp al, 0x41
jne 0x49a41b
call fcn.004761a0
cmp byte [0x4e57bd], 0
jne 0x49a408
cmp byte [0x4e57bc], 0
je 0x49a41b
mov eax, dword [0x4c9868]
cmp eax, ebp
je 0x49a41b
mov dword [eax + 0x50], ebx
mov eax, dword [eax + 0x58]
cmp eax, ebp
jne 0x49a411
call fcn.00431510
cmp dword [0x4c93f0], ebp
je 0x49a437
mov edx, dword [0x4c93e8]
push edx
call fcn.0049e37d
add esp, 4
mov esi, dword [0x4c9868]
mov dword [0x500828], ebp
mov dword [0x50082c], ebp
mov dword [0x500830], ebp
mov dword [0x500834], ebp
mov dword [esp + 0x18], ebp
cmp esi, ebp
je 0x49a643
jmp 0x49a475
mov ebx, 1
cmp dword [esi + 0x50], ebp
je 0x49a638
mov ecx, dword [esi + 0x38]
push 0x400
lea eax, [esp + 0x21cc]
push eax
push ecx
call fcn.0044e710
cmp byte [0x4e57b9], 0
je 0x49a4b5
mov edx, dword [esi + 0x38]
push edx
call fcn.00499d90
test al, 0x20
jne 0x49a4b5
mov dword [esi + 0x50], ebp
mov dword [esi + 0x54], ebx
jmp 0x49a638
mov eax, dword [esi + 0x14]
add dword [0x500830], eax
adc dword [0x500834], ebp
cmp byte [0x4e69c3], 0x44
je 0x49a634
mov ecx, dword [esi + 0x38]
push ebp
push ebp
push ecx
call fcn.00475fe0
mov edx, dword [0x500838]
mov ecx, dword [0x50083c]
cmp eax, ebp
je 0x49a50f
cmp eax, edx
jb 0x49a50f
cmp ecx, ebp
je 0x49a4f8
cmp eax, ecx
jae 0x49a50f
cmp byte [0x4e57bd], 0
jne 0x49a50a
cmp byte [0x4e57bc], 0
je 0x49a54a
cmp eax, dword [esi + 8]
ja 0x49a54a
mov dword [esi + 0x50], ebp
cmp eax, ebp
je 0x49a529
cmp eax, edx
jb 0x49a529
cmp ecx, ebp
je 0x49a522
cmp eax, ecx
jae 0x49a529
mov eax, 1
jmp 0x49a52b
xor eax, eax
mov dword [esi + 0x54], eax
cmp eax, ebp
je 0x49a638
mov edx, dword [esi + 0x14]
sub dword [0x500830], edx
sbb dword [0x500834], ebp
jmp 0x49a638
cmp byte [0x4e69c3], 0x44
je 0x49a634
mov eax, dword [0x4e579c]
cmp eax, ebp
je 0x49a634
cmp eax, 2
sete bl
cmp eax, 4
jne case.default.0x49a5fa
xor eax, eax
jmp 0x49a580
mov cl, byte [esp + eax + 0x21c8]
mov byte [esp + eax + 0x1dc8], cl
inc eax
test cl, cl
jne 0x49a580
lea eax, [esp + 0x1dc8]
push eax
mov edi, 2
call fcn.0044dbc0
movsx ecx, byte [eax]
push ecx
call fcn.0044d900
test al, al
jne 0x49a5f2
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.0049e290
sub eax, dword [str.YNANC]
add esp, 8
inc eax
mov edi, eax
add edi, 0xfffffffe
cmp edi, 3
ja case.default.0x49a5fa
jmp dword [edi*4 + 0x49b594]
mov dword [0x4e579c], 1
jmp case.default.0x49a5fa
mov dword [0x4e579c], 2
mov dword [esi + 0x50], ebp
jmp 0x49a638
push 0xff
mov ecx, 0x4c93ac
call fcn.00428590
test bl, bl
je 0x49a634
mov dword [esi + 0x50], ebp
jmp 0x49a638
inc dword [esp + 0x18]
mov esi, dword [esi + 0x58]
cmp esi, ebp
jne 0x49a470
lea ecx, [esp + 0x1924]
call fcn.004680f0
lea ecx, [esp + 0x1948]
call fcn.004680f0
lea ecx, [esp + 0x196c]
call fcn.004680f0
mov ecx, dword [0x4c93fc]
mov edx, dword [0x4c9400]
push ecx
mov dword [esp + 0x1db4], ebp
push edx
xor ebp, ebp
call fcn.0042fc80
test al, al
je 0x49a6bc
mov ecx, dword [0x4c93fc]
mov edx, dword [0x4c9400]
push ebp
lea eax, [esp + 0xd14]
push eax
push ecx
push edx
call fcn.004335f0
test al, al
je 0x49a6bc
mov eax, dword [esp + 0x1910]
mov ebp, dword [esp + 0x1914]
mov dword [esp + 0x1db0], eax
mov esi, dword [0x4c9870]
test esi, esi
je 0x49a7d2
lea ebx, [ebx]
mov ecx, dword [esi + 0xc]
add dword [0x500830], ecx
adc dword [0x500834], 0
mov edi, dword [esi]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x49a6e7
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 0x49a86f
jl 0x49a71f
cmp dword [esp + 0x1db0], 0x80000000
jae 0x49a86f
push 0
push 0
push edi
call fcn.00475fe0
mov edi, eax
test edi, edi
sete bl
cmp byte [0x4e57b9], 0
je 0x49a745
mov ecx, dword [esi]
push ecx
call fcn.00499d90
test al, 0x20
je 0x49a7a1
mov al, byte [0x4e69c3]
cmp al, 0x44
je 0x49a7a1
cmp al, 0x41
jne 0x49a75b
cmp byte [0x4e57bc], 0
jne 0x49a7a1
mov edx, dword [esi]
push 1
push 1
push edx
mov ecx, 0x4e2ef8
call fcn.0041bd30
test al, al
jne 0x49a7a1
test bl, bl
jne 0x49a7a5
cmp edi, dword [0x500838]
jb 0x49a7c2
mov eax, dword [0x50083c]
test eax, eax
je 0x49a789
cmp edi, eax
jae 0x49a7c2
mov eax, dword [0x4c9400]
mov ecx, dword [esi + 8]
push eax
push ecx
call fcn.00465330
test eax, eax
je 0x49a7c2
mov esi, dword [esi + 0x14]
jmp 0x49a7ca
test bl, bl
je 0x49a7c2
mov edx, dword [esi + 8]
push edx
push 0x206
call fcn.0045be10
push eax
mov eax, dword [0x4c9400]
push eax
call fcn.0048d240
add esp, 0xc
push esi
call fcn.00431430
mov esi, eax
test esi, esi
jne 0x49a6d0
cmp dword [esp + 0x18], 0
mov eax, dword [0x4c9868]
jne 0x49a8e4
cmp dword [0x4c9870], 0
jne 0x49a8e4
cmp dword [0x4c9860], 0
jne 0x49a8e4
mov ecx, dword [0x4e57e4]
mov edx, dword [0x4c985c]
mov esi, dword [0x4c9864]
test eax, eax
je 0x49a837
test ecx, ecx
jne 0x49a8e4
test edx, edx
jne 0x49a9b0
test esi, esi
jne 0x49a8f1
cmp byte [0x4e4308], 0
jne 0x49a8f1
cmp byte [0x4e57bd], 0
jne 0x49a8dd
cmp byte [0x4e57bc], 0
jne 0x49a8dd
test eax, eax
jne 0x49a895
test ecx, ecx
jne 0x49a861
test edx, edx
jne 0x49a861
test esi, esi
je 0x49a895
mov edx, dword [0x4c9400]
push edx
push 0xd
jmp 0x49a251
push 0x3b7
call fcn.0045be10
mov ecx, dword [0x4c9400]
push eax
push ecx
call fcn.0048d240
add esp, 8
push 0x4b1914
push 5
jmp 0x49a251
mov al, byte [0x4e69c3]
cmp al, 0x41
jne 0x49a8b1
push 0x340
call fcn.0045be10
push eax
mov eax, dword [0x4c9400]
push eax
jmp 0x49a8c7
cmp al, 0x44
jne 0x49a8cf
push 0x345
call fcn.0045be10
mov ecx, dword [0x4c9400]
push eax
push ecx
call fcn.0048d240
add esp, 8
mov edx, dword [0x4c9400]
push edx
push 0xc
jmp 0x49a251
push 0
jmp 0x49b34c
cmp dword [0x4c985c], 0
jne 0x49a9b0
cmp byte [0x4e2f08], 0
je 0x49a946
test eax, eax
jne 0x49a90a
cmp dword [0x4c93f8], eax
je 0x49a9b0
mov edx, dword [0x4c93fc]
mov eax, dword [0x4c9400]
push 0
push 0x4b3c8c
push edx
push eax
call fcn.00430430
test eax, eax
jne 0x49a967
mov eax, dword [0x4c9400]
push eax
push eax
mov ecx, 0x4c93ac
call fcn.00428440
mov ecx, dword [0x4c9400]
push ecx
push 0xf
jmp 0x49a251
test eax, eax
jne 0x49a90a
cmp dword [0x4c93f8], eax
jne 0x49a90a
mov ecx, dword [0x4c9400]
push eax
mov eax, dword [0x4c93fc]
push 0x4b1ba8
push eax
push ecx
jmp 0x49a91e
push eax
call fcn.0049fba6
mov edx, dword [0x4c93fc]
mov eax, dword [0x4c9400]
add esp, 4
push edx
push eax
call fcn.0042fd20
cmp dword [0x4c9868], 0
mov dword [esp + 0x1db0], eax
jne 0x49a9bb
cmp dword [0x4c93f8], 0
jne 0x49a9bb
mov ecx, dword [0x4c93fc]
mov edx, dword [0x4c9400]
push ecx
push edx
call fcn.00430040
jmp 0x49a9bb
mov dword [esp + 0x1db0], 0
mov eax, dword [0x4c93fc]
mov ecx, dword [0x4c9400]
push eax
xor edi, edi
xor esi, esi
push ecx
mov dword [esp + 0x20], esi
mov dword [0x4c93e4], edi
call fcn.0042fc80
mov bl, al
cmp dword [0x4c9868], edi
jne 0x49a9ed
cmp dword [0x4c93f8], edi
je 0x49aa3a
mov edx, dword [0x4c93fc]
mov eax, dword [0x4c9400]
push edi
push 0x4b1948
push edx
push eax
call fcn.00430430
mov esi, eax
mov dword [0x500818], eax
mov dword [esp + 0x18], esi
cmp eax, edi
jne 0x49aa3a
mov ecx, dword [0x4c9400]
push ecx
push 0x1f5
call fcn.0045be10
push eax
call fcn.0048cd40
add esp, 8
push 0x4b1914
push 0xd
jmp 0x49a251
test bl, bl
je 0x49aa4c
mov edx, dword [0x4c9400]
push edx
call fcn.00431900
jmp 0x49aa5a
mov eax, dword [0x4c9400]
push eax
call fcn.004aca5d
add esp, 4
mov dword [0x500824], eax
cmp eax, edi
je 0x49a240
test bl, bl
jne 0x49aad3
mov ecx, dword [0x4c93fc]
cmp ecx, edi
je 0x49aad3
push ecx
call fcn.0046e100
mov ecx, eax
mov dword [0x500820], ecx
cmp ecx, edi
je 0x49a240
mov eax, dword [0x500824]
push edi
push 0x4b1ba8
push ecx
push eax
call fcn.00430430
mov ecx, eax
mov dword [esp + 0x20], ecx
mov dword [0x50081c], ecx
cmp ecx, edi
jne 0x49aadb
mov ecx, dword [0x500824]
push ecx
push 0x1f6
call fcn.0045be10
push eax
call fcn.0048cd40
add esp, 8
push 0x4b1914
push 0xa
jmp 0x49a251
mov ecx, dword [0x500820]
jmp 0x49aa90
mov eax, dword [0x4c93f8]
cmp eax, edi
je 0x49ab0d
push eax
push ecx
push esi
call fcn.004319e0
cmp eax, edi
je 0x49ab08
mov ecx, dword [0x500824]
cmp eax, 0xa
je 0x49ab01
mov ecx, dword [0x4c9400]
push ecx
push eax
jmp 0x49a251
mov eax, dword [0x4c93f8]
mov dword [0x4c93e4], eax
mov al, byte [0x4e69c3]
mov dword [esp + 0x24], edi
cmp al, 0x41
jne 0x49ab3b
mov eax, dword [0x4c9400]
xor edx, edx
cmp dword [0x4c9868], edi
setne dl
push edx
push eax
call fcn.00409830
mov al, byte [0x4e69c3]
mov esi, dword [0x4c9868]
mov dword [esp + 0x14], 0x4c9868
cmp esi, edi
je 0x49ae2e
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
jmp 0x49ab65
mov al, byte [0x4e69c3]
mov edi, 1
cmp dword [esi + 0x50], edi
jne 0x49ac65
cmp al, 0x41
jne 0x49abde
mov ecx, dword [esi + 0x4c]
push 0
push 0
push edi
push 0
push ecx
call fcn.00409870
push ebp
push esi
call fcn.0049dbc0
test eax, eax
je 0x49aba0
cmp eax, 0x12
je 0x49abae
cmp eax, 0xffffffff
jne 0x49aed9
cmp eax, 0x12
je 0x49abae
cmp eax, 0xffffffff
jne 0x49ae19
mov edx, dword [esi + 0x4c]
mov eax, dword [0x4c9400]
push edx
push eax
mov ecx, 0x4c93ac
mov dword [esp + 0x2c], edi
call fcn.00428400
push ebp
push ebx
push esi
call fcn.0049c820
test eax, eax
jne 0x49a3dd
mov dword [esi + 0x50], eax
jmp 0x49ae19
cmp dword [0x4dc1c0], 0
jne 0x49ae2e
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.0049e37d
mov eax, dword [esi + 0x4c]
push eax
call fcn.0049e37d
add esp, 8
cmp dword [esi + 0x1c], 0
je 0x49ac22
mov ecx, dword [esi + 0x3c]
push ecx
call fcn.0049e37d
add esp, 4
cmp dword [esi + 0x20], 0
je 0x49ac39
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x3c]
je 0x49ac39
push eax
call fcn.0049e37d
add esp, 4
cmp dword [esi + 0x24], 0
je 0x49ac4b
mov edx, dword [esi + 0x44]
push edx
call fcn.0049e37d
add esp, 4
push esi
call fcn.0049e37d
mov eax, dword [esp + 0x18]
add esp, 4
mov dword [eax], edi
dec dword [0x4c93f0]
jmp 0x49ae20
cmp dword [0x4dc1c0], 0
jne 0x49ae2e
cmp al, 0x44
jne 0x49ac82
mov ecx, dword [esi + 0x4c]
push edi
push 0
push ecx
call fcn.00409980
cmp dword [0x4c9860], 0
mov edi, dword [0x4c985c]
je 0x49ae03
lea ecx, [esp + 0x28]
call fcn.00401f80
mov dword [esp + 0x2654], 0
push 0xce8
lea edx, [esp + 0x2c]
push 0
push edx
call fcn.0049ebe0
mov eax, dword [esi + 0x48]
add esp, 0xc
push eax
call fcn.0044dbc0
movsx ecx, byte [eax]
push ecx
call fcn.0044d900
push 0x3ff
lea edx, [esp + 0x5c]
mov byte [esp + 0x23], al
mov eax, dword [esi + 0x48]
push edx
push eax
call fcn.0044e710
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 0x49ad38
test dl, dl
je 0x49ad34
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49ad38
add eax, 2
add ecx, 2
test dl, dl
jne 0x49ad18
xor eax, eax
jmp 0x49ad3d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov edx, 0x800
sete byte [esp + 0x1e]
test word [esi + 4], dx
jne 0x49ad64
movzx eax, word [esi]
push eax
shr eax, 8
push eax
call fcn.0049b6f0
test al, al
je 0x49ad64
mov bl, 1
jmp 0x49ad66
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 0x49adeb
lea edx, [esp + 0x28]
push edx
push 0x4e2ef8
call fcn.0044fcd0
test al, al
je 0x49adeb
cmp byte [esp + 0x1f], 0
je 0x49ad9e
lea eax, [esp + 0x58]
push eax
call fcn.0044df70
push 0x400
push 0
lea ecx, [esp + 0x60]
push ecx
call fcn.0044e7a0
lea edx, [esp + 0x58]
push edx
mov eax, edx
push eax
call sub.USER32.dll_OemToCharA
test bl, bl
je 0x49adc8
mov ecx, 0xb17
mov word [esi], cx
mov edx, dword [esi + 0x48]
push edx
call fcn.0049e37d
lea eax, [esp + 0x5c]
push eax
call fcn.004aca5d
mov dword [esi + 0x48], eax
add esp, 8
mov dword [0x4c985c], 3
mov dword [esp + 0x2654], 0xffffffff
lea ecx, [esp + 0x28]
call fcn.00401620
mov ebx, dword [esp + 0x18]
push ebp
push ebx
push esi
call fcn.0049c820
mov dword [0x4c985c], edi
test eax, eax
jne 0x49a3dd
add esi, 0x58
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
test esi, esi
jne 0x49ab60
mov edi, dword [0x4c9870]
test edi, edi
je 0x49af41
xor ebx, ebx
cmp dword [0x4dc1c0], ebx
jne 0x49af41
push 0x5c
call fcn.0049e6ff
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x49a240
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.0049dbc0
cmp eax, ebx
je 0x49aebd
cmp eax, 0x12
je 0x49aef1
cmp eax, 0xffffffff
jne 0x49af9a
cmp eax, 0x12
je 0x49aef1
cmp eax, 0xffffffff
je 0x49aef1
mov ecx, dword [esp + 0x14]
mov dword [ecx], esi
inc dword [0x4c93f0]
mov dword [esp + 0x14], ebp
jmp 0x49af31
cmp dword [0x4dc1c0], 0
jne 0x49ae2e
push 0x4b1914
push eax
jmp 0x49a251
mov edx, dword [esi + 0x4c]
mov eax, dword [0x4c9400]
push edx
push eax
mov ecx, 0x4c93ac
mov dword [esp + 0x2c], 1
call fcn.00428400
mov ecx, dword [esi + 0x38]
push ecx
call fcn.0049e37d
mov edx, dword [esi + 0x48]
push edx
call fcn.0049e37d
mov eax, dword [esi + 0x4c]
push eax
call fcn.0049e37d
push esi
call fcn.0049e37d
add esp, 0x10
push edi
call fcn.00431430
mov edi, eax
cmp edi, ebx
jne 0x49ae3e
xor ebp, ebp
cmp byte [0x4e4308], 0
je 0x49b129
cmp dword [0x4c985c], ebp
jne 0x49b129
push 0x4b1948
push 0x4e4308
call fcn.0049fec8
mov esi, eax
add esp, 8
mov dword [esp + 0x14], esi
cmp esi, ebp
jne 0x49afad
mov ecx, dword [0x4c9400]
push 0x4e4308
push ecx
mov ecx, 0x4c93ac
call fcn.00428400
push 0x4b1914
push 0x12
jmp 0x49a251
cmp dword [0x4dc1c0], ebx
jne 0x49af41
push 0x4c9408
push eax
jmp 0x49a251
cmp dword [0x4c93ec], ebp
je 0x49afc4
mov edx, dword [0x4c986c]
push edx
call fcn.0049e37d
add esp, 4
push 0x8000
call fcn.0049e6ff
add esp, 4
mov dword [0x4c986c], eax
cmp eax, ebp
je 0x49a240
push esi
push 0x7fff
push 1
push eax
call fcn.004a0179
mov ecx, dword [0x4c986c]
mov dword [0x4c93ec], eax
add esp, 0x10
mov byte [ecx + eax], 0
cmp dword [0x4e4708], 2
jne 0x49b014
mov eax, dword [0x4c986c]
push eax
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x4e4708], 3
jne 0x49b11e
mov ebx, dword [0x4c986c]
movsx eax, byte [ebx]
cmp eax, 0xff
jne 0x49b044
movsx edx, byte [ebx + 1]
cmp edx, 0xfe
jne 0x49b044
mov edi, 1
jmp 0x49b046
xor edi, edi
cmp eax, 0xfe
jne 0x49b05f
movsx eax, byte [ebx + 1]
cmp eax, 0xff
jne 0x49b05f
mov ebp, 1
jmp 0x49b061
xor ebp, ebp
test edi, edi
jne 0x49b06d
test ebp, ebp
je 0x49b11e
mov ecx, dword [0x4c93ec]
inc ecx
push ecx
lea ecx, [esp + 0x1dc0]
call fcn.0040af20
mov dword [esp + 0x2654], 1
mov esi, dword [esp + 0x1dbc]
mov edx, 2
xor ecx, ecx
cmp dword [0x4c93ec], edx
jbe 0x49b0d8
lea eax, [ebx + ebp + 2]
sub edi, ebp
jmp 0x49b0b0
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 [0x4c93ec]
jb 0x49b0b0
xor edx, edx
mov word [esi + ecx*2], dx
mov eax, dword [0x4c93ec]
mov ecx, dword [0x4c986c]
dec eax
push eax
push ecx
push esi
call fcn.0046d7f0
mov edx, dword [0x4c93ec]
mov eax, dword [0x4c986c]
mov byte [eax + edx - 1], 0
mov dword [esp + 0x2654], 0xffffffff
test esi, esi
je 0x49b11a
push esi
call fcn.0049e37d
add esp, 4
mov esi, dword [esp + 0x14]
push esi
call fcn.0049fba6
add esp, 4
xor ebp, ebp
mov esi, dword [0x4c9868]
mov eax, dword [0x4c93e4]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov edi, eax
cmp esi, ebp
je 0x49b200
mov ebp, dword [esp + 0x20]
cmp dword [0x4c985c], 0
jne 0x49b22e
mov ecx, 0x800
test word [esi + 4], cx
jne 0x49b22e
movzx eax, word [esi]
push eax
shr eax, 8
push eax
call fcn.0049b6f0
test al, al
je 0x49b22e
mov edx, dword [esi + 0x48]
push 0x400
push edx
lea eax, [esp + 0x21d0]
push eax
mov bl, 1
call fcn.00465370
mov eax, dword [esi + 0x48]
push eax
push eax
call sub.USER32.dll_CharToOemA
push ebp
push esi
call fcn.0049c420
test eax, eax
jne 0x49b235
test bl, bl
je 0x49b1c2
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 0x49b1b8
mov ecx, dword [esi + 0x24]
add ecx, dword [esi + 0x20]
mov edx, dword [0x4c93e4]
add ecx, dword [esi + 0x18]
cmp byte [esp + 0x14], 0
lea eax, [edx + ecx + 0x2e]
mov dword [0x4c93e4], eax
jne 0x49b1e6
call fcn.00445860
mov esi, dword [esi + 0x58]
inc dword [esp + 0x14]
test esi, esi
jne 0x49b148
mov ebx, dword [esp + 0x14]
mov eax, dword [0x4c93e4]
xor ebp, ebp
mov esi, dword [esp + 0x20]
mov edx, dword [0x4c986c]
mov ecx, dword [0x4c93ec]
push esi
push edx
push ecx
push edi
sub eax, edi
push eax
push ebx
call fcn.0049c6e0
cmp eax, ebp
je 0x49b242
mov edx, dword [0x500824]
push edx
push eax
jmp 0x49a251
xor bl, bl
jmp 0x49b19b
mov ecx, dword [0x500824]
push ecx
push eax
jmp 0x49a251
push esi
mov dword [0x50081c], ebp
call fcn.0049fba6
add esp, 4
test eax, eax
je 0x49b262
mov eax, dword [0x500824]
push eax
push 0xa
jmp 0x49a251
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x49b273
push eax
call fcn.0049fba6
add esp, 4
call fcn.00420f10
cmp dword [0x4dc1c0], ebp
je 0x49b380
mov ecx, dword [0x500820]
mov edx, dword [0x500824]
push ecx
push edx
call fcn.00430040
mov eax, dword [0x500824]
push eax
call fcn.0049e37d
mov eax, dword [0x500820]
add esp, 4
mov dword [0x500824], ebp
cmp eax, ebp
je 0x49b2bd
push eax
call fcn.0049e37d
add esp, 4
mov dword [0x500820], ebp
cmp ebx, ebp
jne 0x49b2da
mov ecx, dword [0x4c93fc]
mov edx, dword [0x4c9400]
push ecx
push edx
call fcn.00430040
mov eax, dword [esp + 0x1db0]
cmp eax, ebp
je 0x49b2f8
mov ecx, dword [0x4c9400]
push eax
mov eax, dword [0x4c93fc]
push eax
push ecx
call fcn.0042fd50
cmp byte [0x4e57b8], 0
je 0x49b340
mov esi, dword [0x4c9868]
cmp esi, ebp
je 0x49b340
mov edi, 1
cmp dword [esi + 0x50], edi
je 0x49b31a
cmp dword [esi + 0x54], ebp
je 0x49b339
mov edx, dword [esi + 0x38]
push edx
call fcn.00499d90
cmp eax, 0xffffffff
je 0x49b339
test al, 0x20
je 0x49b339
and eax, 0xffffffdf
push eax
mov eax, dword [esi + 0x38]
push eax
call fcn.00499e20
mov esi, dword [esi + 0x58]
cmp esi, ebp
jne 0x49b310
mov eax, dword [esp + 0x24]
neg eax
sbb eax, eax
and eax, 0x12
push eax
lea ecx, [esp + 0xd14]
call fcn.00499ec0
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.0049e626
add esp, 0x2644
ret
cmp dword [0x4c985c], ebp
je 0x49b4bd
mov eax, dword [str.rebuilt.]
mov ecx, dword [0x4b3988]
mov dl, byte [0x4b398c]
mov dword [esp + 0x1dc8], eax
mov eax, dword [0x4c9400]
push eax
mov dword [esp + 0x1dd0], ecx
mov byte [esp + 0x1dd4], dl
call fcn.0044daf0
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x49b3c0
lea edi, [esp + 0x1dc8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x49b3d1
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.0044e680
push ebp
lea edx, [esp + 0x1dcc]
push edx
call fcn.0042fc80
test al, al
je 0x49b44a
lea eax, [esp + 0x1dc8]
push eax
lea ecx, [esp + 0x1dc0]
push ecx
call fcn.0040a2e0
mov al, byte [esp + 0x1dbc]
cmp al, 0x4e
je 0x49b49d
cmp al, 0x43
je 0x49b49d
push ebp
push ebp
lea edx, [esp + 0x1dd0]
push edx
call fcn.0042fd50
lea eax, [esp + 0x1dc8]
push eax
call fcn.00430d70
cmp byte [esp + 0x1dc8], 0
je 0x49b297
mov ecx, dword [0x500824]
push ebp
lea eax, [esp + 0x1dcc]
push eax
push ebp
push ecx
call fcn.0042ff90
test al, al
jne 0x49b297
mov eax, dword [0x500824]
lea edx, [esp + 0x1dc8]
push edx
push eax
push 0x207
call fcn.0045be10
push eax
push ebp
call fcn.0048d240
add esp, 0x10
jmp 0x49b297
mov ecx, dword [0x500820]
mov edx, dword [0x500824]
push ecx
push edx
call fcn.00430040
mov byte [esp + 0x1dc8], 0
jmp 0x49b297
mov ecx, dword [0x500824]
mov edx, dword [0x4c93fc]
mov eax, dword [0x4c9400]
push ecx
push edx
push eax
call fcn.00431ae0
mov esi, eax
cmp esi, ebp
je 0x49b297
mov ecx, dword [0x4c9400]
mov edx, dword [0x500824]
push ecx
push edx
push 0x207
call fcn.0045be10
push eax
push ebp
call fcn.0048d240
mov eax, dword [0x4c9400]
add esp, 0x10
push eax
mov ecx, 0x4c93ac
call fcn.004286d0
cmp esi, 0xf
jne 0x49b540
mov ecx, dword [0x4c93fc]
mov edx, dword [0x4c9400]
push ecx
push edx
call fcn.0042fc80
test al, al
je 0x49b540
mov eax, dword [0x500820]
mov ecx, dword [0x500824]
push eax
push ecx
call fcn.00430040
mov edx, dword [0x500824]
push edx
call fcn.0049e37d
mov eax, dword [0x500820]
add esp, 4
mov dword [0x500824], ebp
cmp eax, ebp
je 0x49b567
push eax
call fcn.0049e37d
add esp, 4
push 0x4b1914
mov dword [0x500820], ebp
push esi
jmp 0x49a251