Function at 0x49fad4
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4b6f36
mov eax, dword fs:[0]
push eax
mov eax, 0x2db4
call fcn.004a4220
mov eax, dword [0x4ca3b0]
xor eax, esp
mov dword [esp + 0x2db0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ca3b0]
xor eax, esp
push eax
lea eax, [esp + 0x2dc8]
mov dword fs:[0], eax
call fcn.00435790
mov eax, dword [0x4f45c0]
movsx eax, byte [eax + 0x4ca34c]
mov cl, byte [0x4f5fe4]
xor ebp, ebp
mov dword [0x4c8ddc], eax
neg eax
sbb eax, eax
mov dword [0x4c8dd8], eax
mov al, byte [0x4f5fe3]
mov dword [0x51ccd8], ebp
mov dword [0x51ccdc], ebp
mov dword [0x51ccc4], ebp
mov dword [0x51ccc0], ebp
mov dword [0x4d56e8], ebp
mov dword [0x4d5b78], ebp
mov dword [0x4c8de0], 0x4d5b78
mov dword [0x4d5708], ebp
mov dword [0x4d5704], ebp
mov dword [0x51ccbc], ebp
mov dword [0x51ccb8], ebp
cmp al, 0x52
jne 0x49f6d3
mov dword [0x4d5b64], 3
test cl, cl
je 0x49f6d9
mov dword [0x4d5b64], ebp
xor edx, edx
cmp al, 0x53
sete dl
mov dword [0x4d5b6c], edx
cmp al, 0x52
jne 0x49f6f9
mov dword [0x4d5b68], 1
cmp cl, 0x4e
je 0x49f6ff
mov dword [0x4d5b68], ebp
cmp byte [0x4f6c14], 0
je 0x49f8ad
push 0x4f6c14
call fcn.004a0d50
mov dword [0x4d5708], eax
cmp eax, ebp
jne 0x49f735
mov ecx, 0x4d56b4
call fcn.00428b60
push 0x4b8a1e
push 4
call fcn.0049f0a0
cmp word [0x4f7014], bp
je 0x49f756
push 0x4f7014
call fcn.004a0dd0
mov dword [0x4d5704], eax
cmp eax, ebp
je 0x49f71f
mov eax, dword [0x4d5708]
cmp byte [0x4f461b], 0
je 0x49f78e
push eax
call fcn.00451180
test al, al
je 0x49f78e
movsx eax, byte [0x4f5fe3]
push eax
push 0x4b9050
call fcn.004a37c0
add esp, 8
test eax, eax
je 0x49f78e
mov ecx, dword [0x4d5708]
push ecx
call fcn.004326d0
cmp dword [0x4d5b64], ebp
je 0x49f82b
xor eax, eax
lea esp, [esp]
movzx ecx, word [eax + 0x4bbe14]
mov word [esp + eax + 0x25c4], cx
add eax, 2
cmp cx, bp
jne 0x49f7a0
mov edx, dword [0x4d5704]
push edx
call fcn.004513d0
mov edx, eax
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x49f7c5
lea edi, [esp + 0x25c4]
sub eax, edx
add edi, 0xfffffffe
lea esp, [esp]
mov cx, word [edi + 2]
add edi, 2
cmp cx, bp
jne 0x49f7e0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x25c4]
push eax
and ecx, 3
push 0x267
rep movsb byte es:[edi], byte [esi]
call fcn.00460760
push eax
lea ecx, [esp + 0x44]
push ecx
mov edx, 0x4c8
call fcn.00495900
add esp, 0xc
lea edx, [esp + 0x3c]
push edx
call fcn.00485240
call fcn.004a22f0
mov esi, eax
cmp esi, ebp
je 0x49f8a8
lea eax, [esi - 2]
cmp eax, 9
ja case.0x49f845.5
movzx eax, byte [eax + 0x4a0a00]
jmp dword [eax*4 + 0x4a09f0]
push 0x2ad
call fcn.00460760
mov ecx, dword [0x4d5704]
push eax
push ecx
call fcn.00492940
mov eax, dword [0x4d5708]
add esp, 8
push eax
push esi
jmp 0x49f730
mov ecx, 0x4d56b4
call fcn.00428b60
mov eax, dword [0x4d5708]
push eax
push esi
jmp 0x49f730
mov edx, dword [0x4d5708]
push ebp
push edx
push ebp
push ebp
mov ecx, 0x4d56b4
call fcn.004292d0
mov eax, dword [0x4d5708]
push eax
push esi
jmp 0x49f730
mov al, byte [0x4f5fe3]
cmp al, 0x44
jne 0x49f8cf
call fcn.0047bc00
cmp eax, ebp
je 0x49f8ca
cmp eax, 0xffffffff
je 0x49f8ca
push 0x4b8a1e
push eax
jmp 0x49f730
mov al, byte [0x4f5fe3]
cmp al, 0x41
jne 0x49f8d8
call fcn.0047b960
call fcn.00432c30
cmp dword [0x4d56f8], ebp
je 0x49f8f4
mov ecx, dword [0x4d56f0]
push ecx
call fcn.004a3b8f
add esp, 4
mov esi, dword [0x4d5b70]
mov dword [0x51ccc8], ebp
mov dword [0x51cccc], ebp
mov dword [0x51ccd0], ebp
mov dword [0x51ccd4], ebp
mov dword [esp + 0x18], ebp
cmp esi, ebp
je 0x49fae8
cmp dword [esi + 0x50], ebp
je 0x49fadd
mov eax, dword [esi + 0x38]
push 0x400
lea edx, [esp + 0x25c8]
push edx
push eax
call fcn.00452470
cmp byte [0x4f45d9], 0
je 0x49f962
mov ecx, dword [esi + 0x38]
push ecx
call fcn.0049f270
test al, 0x20
jne 0x49f962
mov dword [esi + 0x50], ebp
mov dword [esi + 0x54], 1
jmp 0x49fadd
mov edx, dword [esi + 0x14]
add dword [0x51ccd0], edx
adc dword [0x51ccd4], ebp
cmp byte [0x4f5fe3], 0x44
je 0x49fad9
mov eax, dword [esi + 0x38]
push ebp
push ebp
push eax
call fcn.0047b730
mov edx, dword [0x51ccd8]
mov ecx, dword [0x51ccdc]
cmp eax, ebp
je 0x49f9bc
cmp eax, edx
jb 0x49f9bc
cmp ecx, ebp
je 0x49f9a5
cmp eax, ecx
jae 0x49f9bc
cmp byte [0x4f45dd], 0
jne 0x49f9b7
cmp byte [0x4f45dc], 0
je 0x49f9f7
cmp eax, dword [esi + 8]
ja 0x49f9f7
mov dword [esi + 0x50], ebp
cmp eax, ebp
je 0x49f9d6
cmp eax, edx
jb 0x49f9d6
cmp ecx, ebp
je 0x49f9cf
cmp eax, ecx
jae 0x49f9d6
mov eax, 1
jmp 0x49f9d8
xor eax, eax
mov dword [esi + 0x54], eax
cmp eax, ebp
je 0x49fadd
mov ecx, dword [esi + 0x14]
sub dword [0x51ccd0], ecx
sbb dword [0x51ccd4], ebp
jmp 0x49fadd
cmp byte [0x4f5fe3], 0x44
je 0x49fad9
mov eax, dword [0x4f45bc]
cmp eax, ebp
je 0x49fad9
cmp eax, 2
sete bl
cmp eax, 4
jne case.default.0x49fa9f
xor eax, eax
jmp 0x49fa30
mov cl, byte [esp + eax + 0x25c4]
mov byte [esp + eax + 0x21c4], cl
inc eax
test cl, cl
jne 0x49fa30
lea edx, [esp + 0x21c4]
push edx
mov edi, 2
call fcn.00451430
movsx eax, byte [eax]
push eax
call fcn.00450e40
test al, al
jne 0x49fa97
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x14]
push 7
push ecx
push ebp
push edx
push ebp
lea eax, [esp + 0x21d8]
push eax
call fcn.0040ada0
mov edx, dword [str.YNANC]
movsx ecx, al
push ecx
push edx
call fcn.004a37c0
sub eax, dword [str.YNANC]
add esp, 8
inc eax
mov edi, eax
add edi, 0xfffffffe
cmp edi, 3
ja case.default.0x49fa9f
jmp dword [edi*4 + 0x4a0a0c]
mov dword [0x4f45bc], 1
jmp case.default.0x49fa9f
mov dword [0x4f45bc], 2
mov dword [esi + 0x50], ebp
jmp 0x49fadd
push 0xff
mov ecx, 0x4d56b4
call fcn.00429410
test bl, bl
je 0x49fad9
mov dword [esi + 0x50], ebp
jmp 0x49fadd
inc dword [esp + 0x18]
mov esi, dword [esi + 0x58]
cmp esi, ebp
jne 0x49f91e
lea ecx, [esp + 0x1938]
call fcn.0046cee0
lea ecx, [esp + 0x195c]
call fcn.0046cee0
lea ecx, [esp + 0x1980]
call fcn.0046cee0
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push eax
mov dword [esp + 0x2c], ebp
push ecx
xor ebp, ebp
call fcn.004313f0
test al, al
je 0x49fb59
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push ebp
lea edx, [esp + 0xd28]
push edx
push eax
push ecx
call fcn.00434e20
test al, al
je 0x49fb59
mov edx, dword [esp + 0x1924]
mov ebp, dword [esp + 0x1928]
mov dword [esp + 0x28], edx
mov esi, dword [0x4d5b78]
test esi, esi
je 0x49fc8c
jmp 0x49fb70
mov eax, dword [esi + 0xc]
add dword [0x51ccd0], eax
adc dword [0x51ccd4], 0
mov ecx, dword [esi]
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x49fb87
mov edx, dword [esi + 0xc]
sub eax, edi
lea eax, [edx + eax*2 + 0x100]
add dword [esp + 0x28], eax
adc ebp, 0
test ebp, ebp
jg 0x49fd29
jl 0x49fbb9
cmp dword [esp + 0x28], 0x80000000
jae 0x49fd29
push 0
push 0
push ecx
call fcn.0047b730
mov ecx, dword [esi]
mov edi, eax
test edi, edi
push ecx
sete bl
call fcn.00451430
movsx edx, byte [eax]
push edx
call fcn.00450e40
cmp byte [0x4f45d9], 0
mov byte [esp + 0x24], al
je 0x49fbf4
mov eax, dword [esi]
push eax
call fcn.0049f270
test al, 0x20
je 0x49fc55
mov al, byte [0x4f5fe3]
cmp al, 0x44
je 0x49fc55
cmp al, 0x41
jne 0x49fc0a
cmp byte [0x4f45dc], 0
jne 0x49fc55
mov ecx, dword [esp + 0x24]
mov edx, dword [esi]
push 1
push 1
push ecx
push edx
mov ecx, 0x4f0c98
call fcn.0041c5b0
test al, al
jne 0x49fc55
test bl, bl
jne 0x49fc59
cmp edi, dword [0x51ccd8]
jb 0x49fc7c
mov eax, dword [0x51ccdc]
test eax, eax
je 0x49fc3d
cmp edi, eax
jae 0x49fc7c
mov eax, dword [0x4d5708]
mov ecx, dword [esi + 8]
push eax
push ecx
call fcn.00469f00
test eax, eax
je 0x49fc7c
mov esi, dword [esi + 0x14]
jmp 0x49fc84
test bl, bl
je 0x49fc7c
mov edx, dword [esi + 8]
push edx
call fcn.0046a100
push eax
push 0x206
call fcn.00460760
push eax
mov eax, dword [0x4d5704]
push eax
call fcn.00492940
add esp, 0xc
push esi
call fcn.00432b50
mov esi, eax
test esi, esi
jne 0x49fb70
cmp dword [esp + 0x18], 0
mov eax, dword [0x4d5b70]
jne 0x49fd9e
cmp dword [0x4d5b78], 0
jne 0x49fd9e
cmp dword [0x4d5b68], 0
jne 0x49fd9e
mov ecx, dword [0x4f4604]
mov edx, dword [0x4d5b64]
mov esi, dword [0x4d5b6c]
test eax, eax
je 0x49fcf1
test ecx, ecx
jne 0x49fd9e
test edx, edx
jne 0x49fdf8
test esi, esi
jne 0x49fda7
cmp word [0x4f2ca8], si
jne 0x49fda7
cmp byte [0x4f45dd], 0
jne 0x49fd97
cmp byte [0x4f45dc], 0
jne 0x49fd97
test eax, eax
jne 0x49fd4f
test ecx, ecx
jne 0x49fd1b
test edx, edx
jne 0x49fd1b
test esi, esi
je 0x49fd4f
mov edx, dword [0x4d5708]
push edx
push 0xd
jmp 0x49f730
push 0x3b7
call fcn.00460760
mov ecx, dword [0x4d5704]
push eax
push ecx
call fcn.00492940
add esp, 8
push 0x4b8a1e
push 5
jmp 0x49f730
mov al, byte [0x4f5fe3]
cmp al, 0x41
jne 0x49fd6b
push 0x340
call fcn.00460760
push eax
mov eax, dword [0x4d5704]
push eax
jmp 0x49fd81
cmp al, 0x44
jne 0x49fd89
push 0x345
call fcn.00460760
mov ecx, dword [0x4d5704]
push eax
push ecx
call fcn.00492940
add esp, 8
mov edx, dword [0x4d5708]
push edx
push 0xc
jmp 0x49f730
push 0
jmp 0x4a07af
cmp dword [0x4d5b64], 0
jne 0x49fdf8
cmp byte [0x4f0ca8], 0
je 0x49fdbc
test eax, eax
jne 0x49fdbc
cmp dword [0x4d5700], eax
je 0x49fdf8
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push eax
push ecx
call fcn.004314d0
cmp dword [0x4d5b70], 0
mov dword [esp + 0x24], eax
jne 0x49fe00
cmp dword [0x4d5700], 0
jne 0x49fe00
mov edx, dword [0x4d5704]
mov eax, dword [0x4d5708]
push edx
push eax
call fcn.004316d0
jmp 0x49fe00
mov dword [esp + 0x24], 0
mov ecx, dword [0x4d5704]
mov edx, dword [0x4d5708]
push ecx
xor edi, edi
xor esi, esi
push edx
mov dword [esp + 0x20], esi
mov dword [0x4d56ec], edi
call fcn.004313f0
mov bl, al
cmp dword [0x4d5b70], edi
jne 0x49fe33
cmp dword [0x4d5700], edi
je 0x49fe80
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push edi
push 0x4b8a24
push eax
push ecx
call fcn.004319a0
mov esi, eax
mov dword [0x51ccb8], eax
mov dword [esp + 0x18], esi
cmp eax, edi
jne 0x49fe80
mov edx, dword [0x4d5704]
push edx
push 0x1f5
call fcn.00460760
push eax
call fcn.00492420
add esp, 8
push 0x4b8a1e
push 0xd
jmp 0x49f730
test bl, bl
je 0x49fe91
mov eax, dword [0x4d5708]
push eax
call fcn.00433050
jmp 0x49fea0
mov ecx, dword [0x4d5708]
push ecx
call fcn.004b2efa
add esp, 4
mov dword [0x51ccc4], eax
cmp eax, edi
je 0x49f71f
test bl, bl
jne 0x49ff22
mov ecx, dword [0x4d5704]
cmp ecx, edi
je 0x49ff22
push ecx
call fcn.004a7583
mov ecx, eax
add esp, 4
mov dword [0x51ccc0], ecx
cmp ecx, edi
je 0x49f71f
mov eax, dword [0x51ccc4]
push edi
push 0x4b8d50
push ecx
push eax
call fcn.004319a0
mov ecx, eax
mov dword [esp + 0x20], ecx
mov dword [0x51ccbc], ecx
cmp ecx, edi
jne 0x49ff2a
mov edx, dword [0x51ccc4]
push edx
call fcn.0046a100
push eax
push 0x1f6
call fcn.00460760
push eax
call fcn.00492420
add esp, 8
push 0x4b8a1e
push 0xa
jmp 0x49f730
mov ecx, dword [0x51ccc0]
jmp 0x49fed9
mov eax, dword [0x4d5700]
cmp eax, edi
je 0x49ff5c
push eax
push ecx
push esi
call fcn.00433130
cmp eax, edi
je 0x49ff57
mov ecx, dword [0x51ccc4]
cmp eax, 0xa
je 0x49ff50
mov ecx, dword [0x4d5708]
push ecx
push eax
jmp 0x49f730
mov eax, dword [0x4d5700]
mov dword [0x4d56ec], eax
mov al, byte [0x4f5fe3]
mov dword [esp + 0x28], edi
cmp al, 0x41
jne 0x49ff8b
mov ecx, dword [0x4d5708]
xor eax, eax
cmp dword [0x4d5b70], edi
setne al
push eax
push ecx
call fcn.00409bd0
mov al, byte [0x4f5fe3]
mov esi, dword [0x4d5b70]
mov dword [esp + 0x14], 0x4d5b70
cmp esi, edi
je 0x4a0284
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
jmp 0x49ffb5
mov al, byte [0x4f5fe3]
mov ebx, 1
cmp dword [esi + 0x50], ebx
jne 0x4a00bf
cmp al, 0x41
jne 0x4a003c
mov edx, dword [esi + 0x4c]
push 0
push 0
push ebx
push 0
push edx
call fcn.00409c10
push ebp
push esi
call fcn.004a30b0
test eax, eax
je 0x49fff0
cmp eax, 0x12
je 0x49fffe
cmp eax, 0xffffffff
jne 0x4a0330
cmp eax, 0x12
je 0x49fffe
cmp eax, 0xffffffff
jne 0x4a0273
mov eax, dword [esi + 0x4c]
mov ecx, dword [0x4d5704]
mov edx, dword [0x4d5708]
push 0
push eax
push ecx
push edx
mov ecx, 0x4d56b4
mov dword [esp + 0x38], ebx
call fcn.004290e0
mov eax, dword [esp + 0x18]
push ebp
push eax
push esi
call fcn.004a1520
test eax, eax
jne 0x49f8bf
mov dword [esi + 0x50], eax
jmp 0x4a0273
cmp byte [0x4e8c4c], 0
jne 0x4a0284
mov ecx, dword [esi + 0x4c]
push 0
push 0
push ecx
call fcn.0040a950
mov edx, dword [esi + 0x48]
mov ebx, dword [esi + 0x58]
push edx
call fcn.004a3b8f
mov eax, dword [esi + 0x4c]
push eax
call fcn.004a3b8f
add esp, 8
cmp dword [esi + 0x1c], 0
je 0x4a0080
mov ecx, dword [esi + 0x3c]
push ecx
call fcn.004a3b8f
add esp, 4
cmp dword [esi + 0x20], 0
je 0x4a0097
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x3c]
je 0x4a0097
push eax
call fcn.004a3b8f
add esp, 4
cmp dword [esi + 0x24], 0
je 0x4a00a9
mov edx, dword [esi + 0x44]
push edx
call fcn.004a3b8f
add esp, 4
push esi
call fcn.004a3b8f
add esp, 4
mov dword [edi], ebx
dec dword [0x4d56f8]
jmp 0x4a027a
cmp byte [0x4e8c4c], 0
jne 0x4a0284
cmp al, 0x44
jne 0x4a00dc
mov eax, dword [esi + 0x4c]
push ebx
push 0
push eax
call fcn.0040a950
cmp dword [0x4d5b68], 0
mov edi, dword [0x4d5b64]
je 0x4a0259
lea ecx, [esp + 0x3c]
call fcn.00402140
mov dword [esp + 0x2dd0], 0
push 0xce8
lea ecx, [esp + 0x40]
push 0
push ecx
call fcn.004a4250
mov edx, dword [esi + 0x48]
add esp, 0xc
push edx
call fcn.00451430
movsx eax, byte [eax]
push eax
call fcn.00450e40
mov edx, dword [esi + 0x48]
push 0x3ff
lea ecx, [esp + 0x70]
push ecx
push edx
mov byte [esp + 0x2a], al
call fcn.00452470
lea eax, [esp + 0x25c4]
push eax
lea ecx, [esp + 0x70]
push ecx
call sub.USER32.dll_CharToOemA
lea edx, [esp + 0x21c4]
push edx
lea eax, [esp + 0x25c8]
push eax
call sub.USER32.dll_OemToCharA
lea ecx, [esp + 0x21c4]
lea eax, [esp + 0x6c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4a0192
test dl, dl
je 0x4a018e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4a0192
add eax, 2
add ecx, 2
test dl, dl
jne 0x4a0172
xor eax, eax
jmp 0x4a0197
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov ecx, 0x800
sete byte [esp + 0x1f]
test word [esi + 4], cx
jne 0x4a01be
movzx eax, word [esi]
push eax
shr eax, 8
push eax
call fcn.004a0b60
test al, al
je 0x4a01be
mov bl, 1
jmp 0x4a01c0
xor bl, bl
lea edx, [esp + 0x6c]
push edx
mov eax, edx
push eax
call sub.USER32.dll_CharToOemA
cmp byte [esp + 0x1f], 0
je 0x4a0245
lea ecx, [esp + 0x3c]
push ecx
push 0x4f0c98
call fcn.00453c60
test al, al
je 0x4a0245
cmp byte [esp + 0x1e], 0
je 0x4a01f8
lea edx, [esp + 0x6c]
push edx
call fcn.00451880
push 0x400
push 0
lea eax, [esp + 0x74]
push eax
call fcn.00452500
lea ecx, [esp + 0x6c]
push ecx
mov edx, ecx
push edx
call sub.USER32.dll_OemToCharA
test bl, bl
je 0x4a0222
mov eax, 0xb17
mov word [esi], ax
mov ecx, dword [esi + 0x48]
push ecx
call fcn.004a3b8f
lea edx, [esp + 0x70]
push edx
call fcn.004b2efa
mov dword [esi + 0x48], eax
add esp, 8
mov dword [0x4d5b64], 3
mov dword [esp + 0x2dd0], 0xffffffff
lea ecx, [esp + 0x3c]
call fcn.00401740
mov eax, dword [esp + 0x18]
push ebp
push eax
push esi
call fcn.004a1520
mov dword [0x4d5b64], edi
test eax, eax
jne 0x49f8bf
lea edi, [esi + 0x58]
mov dword [esp + 0x14], edi
mov esi, dword [edi]
test esi, esi
jne 0x49ffb0
mov edi, dword [0x4d5b78]
test edi, edi
je 0x4a03a0
xor ebx, ebx
cmp byte [0x4e8c4c], 0
jne 0x4a03a0
push 0x5c
call fcn.004a3acc
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x49f71f
mov dword [esi + 0x58], ebx
mov ecx, dword [edi]
mov dword [esi + 0x38], ecx
mov edx, dword [edi + 4]
mov dword [edi], ebx
lea ebp, [esi + 0x58]
push ebx
mov dword [esi + 0x48], edx
mov eax, dword [edi + 8]
mov dword [edi + 4], ebx
push ebx
mov dword [esi + 0x4c], eax
mov dword [edi + 8], ebx
mov ecx, dword [esi + 0x4c]
push ebx
push ebx
push ecx
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.00409c10
mov edx, dword [esp + 0x20]
push edx
push esi
call fcn.004a30b0
cmp eax, ebx
je 0x4a0314
cmp eax, 0x12
je 0x4a0348
cmp eax, 0xffffffff
jne 0x4a0403
cmp eax, 0x12
je 0x4a0348
cmp eax, 0xffffffff
je 0x4a0348
mov eax, dword [esp + 0x14]
mov dword [eax], esi
inc dword [0x4d56f8]
mov dword [esp + 0x14], ebp
jmp 0x4a0390
cmp byte [0x4e8c4c], 0
jne 0x4a0284
push 0x4b8a1e
push eax
jmp 0x49f730
mov ecx, dword [esi + 0x4c]
mov edx, dword [0x4d5704]
mov eax, dword [0x4d5708]
push ebx
push ecx
push edx
push eax
mov ecx, 0x4d56b4
mov dword [esp + 0x38], 1
call fcn.004290e0
mov ecx, dword [esi + 0x38]
push ecx
call fcn.004a3b8f
mov edx, dword [esi + 0x48]
push edx
call fcn.004a3b8f
mov eax, dword [esi + 0x4c]
push eax
call fcn.004a3b8f
push esi
call fcn.004a3b8f
add esp, 0x10
push edi
call fcn.00432b50
mov edi, eax
cmp edi, ebx
jne 0x4a0294
xor ebp, ebp
cmp word [0x4f2ca8], bp
je 0x4a0589
cmp dword [0x4d5b64], ebp
jne 0x4a0589
push ebp
push 0x4b8a24
push 0x4f2ca8
call fcn.00431a80
mov esi, eax
mov dword [esp + 0x14], esi
cmp esi, ebp
jne 0x4a0417
mov ecx, dword [0x4d5704]
mov edx, dword [0x4d5708]
push 0x4f2ca8
push 0x4f28a8
push ecx
push edx
mov ecx, 0x4d56b4
call fcn.004290e0
push 0x4b8a1e
push 0x12
jmp 0x49f730
cmp byte [0x4e8c4c], 0
jne 0x4a03a0
push 0x4d5710
push eax
jmp 0x49f730
cmp dword [0x4d56f4], ebp
je 0x4a042d
mov eax, dword [0x4d5b74]
push eax
call fcn.004a3b8f
add esp, 4
push 0x8000
call fcn.004a3acc
add esp, 4
mov dword [0x4d5b74], eax
cmp eax, ebp
je 0x49f71f
push esi
push 0x7fff
push 1
push eax
call fcn.004a5712
mov ecx, dword [0x4d5b74]
mov dword [0x4d56f4], eax
add esp, 0x10
mov byte [ecx + eax], 0
cmp dword [0x4f34a8], 2
jne 0x4a047d
mov eax, dword [0x4d5b74]
push eax
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x4f34a8], 3
jne 0x4a057e
mov ebx, dword [0x4d5b74]
movsx eax, byte [ebx]
cmp eax, 0xff
jne 0x4a04ad
movsx edx, byte [ebx + 1]
cmp edx, 0xfe
jne 0x4a04ad
mov edi, 1
jmp 0x4a04af
xor edi, edi
cmp eax, 0xfe
jne 0x4a04c8
movsx eax, byte [ebx + 1]
cmp eax, 0xff
jne 0x4a04c8
mov ebp, 1
jmp 0x4a04ca
xor ebp, ebp
test edi, edi
jne 0x4a04d6
test ebp, ebp
je 0x4a057e
mov ecx, dword [0x4d56f4]
inc ecx
push ecx
lea ecx, [esp + 0x34]
call fcn.0040b450
mov dword [esp + 0x2dd0], 1
mov esi, dword [esp + 0x30]
mov edx, 2
xor ecx, ecx
cmp dword [0x4d56f4], edx
jbe 0x4a0538
lea eax, [ebx + ebp + 2]
sub edi, ebp
jmp 0x4a0510
movsx bx, byte [eax + edi]
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 [0x4d56f4]
jb 0x4a0510
xor edx, edx
mov word [esi + ecx*2], dx
mov eax, dword [0x4d56f4]
mov ecx, dword [0x4d5b74]
dec eax
push eax
push ecx
push esi
call fcn.00472540
mov edx, dword [0x4d56f4]
mov eax, dword [0x4d5b74]
mov byte [eax + edx - 1], 0
mov dword [esp + 0x2dd0], 0xffffffff
test esi, esi
je 0x4a057a
push esi
call fcn.004a3b8f
add esp, 4
mov esi, dword [esp + 0x14]
push esi
call fcn.004a5ab5
add esp, 4
xor ebp, ebp
mov esi, dword [0x4d5b70]
mov eax, dword [0x4d56ec]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov edi, eax
cmp esi, ebp
je 0x4a0660
mov ebp, dword [esp + 0x20]
cmp dword [0x4d5b64], 0
jne 0x4a068e
mov ecx, 0x800
test word [esi + 4], cx
jne 0x4a068e
movzx eax, word [esi]
push eax
shr eax, 8
push eax
call fcn.004a0b60
test al, al
je 0x4a068e
mov edx, dword [esi + 0x48]
push 0x400
push edx
lea eax, [esp + 0x25cc]
push eax
mov bl, 1
call fcn.00469f40
mov eax, dword [esi + 0x48]
push eax
push eax
call sub.USER32.dll_CharToOemA
push ebp
push esi
call fcn.004a1120
test eax, eax
jne 0x4a0695
test bl, bl
je 0x4a0622
mov edx, dword [esi + 0x48]
lea ecx, [esp + 0x25c4]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4a0618
mov ecx, dword [esi + 0x24]
add ecx, dword [esi + 0x20]
mov edx, dword [0x4d56ec]
add ecx, dword [esi + 0x18]
cmp byte [esp + 0x14], 0
lea eax, [edx + ecx + 0x2e]
mov dword [0x4d56ec], eax
jne 0x4a0646
call fcn.004468f0
mov esi, dword [esi + 0x58]
inc dword [esp + 0x14]
test esi, esi
jne 0x4a05a8
mov ebx, dword [esp + 0x14]
mov eax, dword [0x4d56ec]
xor ebp, ebp
mov esi, dword [esp + 0x20]
mov edx, dword [0x4d5b74]
mov ecx, dword [0x4d56f4]
push esi
push edx
push ecx
push edi
sub eax, edi
push eax
push ebx
call fcn.004a13e0
cmp eax, ebp
je 0x4a06a2
mov edx, dword [0x51ccc4]
push edx
push eax
jmp 0x49f730
xor bl, bl
jmp 0x4a05fb
mov ecx, dword [0x51ccc4]
push ecx
push eax
jmp 0x49f730
push esi
mov dword [0x51ccbc], ebp
call fcn.004a5ab5
add esp, 4
test eax, eax
je 0x4a06c2
mov eax, dword [0x51ccc4]
push eax
push 0xa
jmp 0x49f730
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x4a06d3
push eax
call fcn.004a5ab5
add esp, 4
call fcn.00421b10
cmp byte [0x4e8c4c], 0
je 0x4a07e3
mov ecx, dword [0x51ccc0]
mov edx, dword [0x51ccc4]
push ecx
push edx
call fcn.004316d0
mov edx, dword [0x51ccc4]
push edx
call fcn.004a3b8f
mov eax, dword [0x51ccc0]
add esp, 4
mov dword [0x51ccc4], ebp
cmp eax, ebp
je 0x4a071f
push eax
call fcn.004a3b8f
add esp, 4
mov dword [0x51ccc0], ebp
cmp ebx, ebp
jne 0x4a073b
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push eax
push ecx
call fcn.004316d0
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x4a075b
cmp eax, 0xffffffff
je 0x4a075b
mov edx, dword [0x4d5704]
push eax
mov eax, dword [0x4d5708]
push edx
push eax
call fcn.00431500
cmp byte [0x4f45d8], 0
je 0x4a07a3
mov esi, dword [0x4d5b70]
cmp esi, ebp
je 0x4a07a3
mov edi, 1
cmp dword [esi + 0x50], edi
je 0x4a077d
cmp dword [esi + 0x54], ebp
je 0x4a079c
mov ecx, dword [esi + 0x38]
push ecx
call fcn.0049f270
cmp eax, 0xffffffff
je 0x4a079c
test al, 0x20
je 0x4a079c
mov edx, dword [esi + 0x38]
and eax, 0xffffffdf
push eax
push edx
call fcn.0049f300
mov esi, dword [esi + 0x58]
cmp esi, ebp
jne 0x4a0773
mov eax, dword [esp + 0x28]
neg eax
sbb eax, eax
and eax, 0x12
push eax
lea ecx, [esp + 0xd28]
call fcn.0049f3a0
mov ecx, dword [esp + 0x2dc8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2db0]
xor ecx, esp
call fcn.004a39f3
add esp, 0x2dc0
ret
cmp dword [0x4d5b64], ebp
je 0x4a092c
mov eax, dword [str.rebuilt.]
mov ecx, dword [0x4bbe3c]
mov dl, byte [0x4bbe40]
mov dword [esp + 0x21c4], eax
mov eax, dword [0x4d5708]
push eax
mov dword [esp + 0x21cc], ecx
mov byte [esp + 0x21d0], dl
call fcn.00451350
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0822
lea edi, [esp + 0x21c4]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4a0833
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 + 0x21c8]
push ecx
call fcn.004523e0
push ebp
lea edx, [esp + 0x21c8]
push edx
call fcn.004313f0
test al, al
je 0x4a08ae
push ebp
push ebp
push 0x7fffffff
push 0x7fffffff
push ebp
lea eax, [esp + 0x21d8]
push eax
call fcn.0040ada0
cmp al, 0x4e
je 0x4a090d
cmp al, 0x43
je 0x4a090d
push ebp
push ebp
lea ecx, [esp + 0x21cc]
push ecx
call fcn.00431500
lea edx, [esp + 0x21c4]
push edx
call fcn.00432440
cmp byte [esp + 0x21c4], 0
je 0x4a06f8
mov eax, dword [0x51ccc4]
push ebp
lea edx, [esp + 0x21c8]
push edx
push ebp
push eax
call fcn.004315f0
test al, al
jne 0x4a06f8
lea ecx, [esp + 0x21c4]
push ecx
call fcn.0046a100
mov edx, dword [0x51ccc4]
push eax
push edx
call fcn.0046a100
push eax
push 0x207
call fcn.00460760
push eax
push ebp
call fcn.00492940
add esp, 0x10
jmp 0x4a06f8
mov eax, dword [0x51ccc0]
mov ecx, dword [0x51ccc4]
push eax
push ecx
call fcn.004316d0
mov byte [esp + 0x21c4], 0
jmp 0x4a06f8
mov eax, dword [0x51ccc4]
mov ecx, dword [0x4d5704]
mov edx, dword [0x4d5708]
push eax
push ecx
push edx
call fcn.00433230
mov esi, eax
cmp esi, ebp
je 0x4a06f8
mov eax, dword [0x4d5704]
mov ecx, dword [0x51ccc4]
push eax
push ecx
call fcn.0046a100
push eax
push 0x207
call fcn.00460760
push eax
push ebp
call fcn.00492940
mov edx, dword [0x4d5708]
add esp, 0x10
push ebp
push edx
mov ecx, 0x4d56b4
call fcn.004294e0
cmp esi, 0xf
jne 0x4a09b5
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push eax
push ecx
call fcn.004313f0
test al, al
je 0x4a09b5
mov edx, dword [0x51ccc0]
mov eax, dword [0x51ccc4]
push edx
push eax
call fcn.004316d0
mov ecx, dword [0x51ccc4]
push ecx
call fcn.004a3b8f
mov eax, dword [0x51ccc0]
add esp, 4
mov dword [0x51ccc4], ebp
cmp eax, ebp
je 0x4a09dc
push eax
call fcn.004a3b8f
add esp, 4
push 0x4b8a1e
mov dword [0x51ccc0], ebp
push esi
jmp 0x49f730