Function at 0x49f880
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4b7236
mov eax, dword fs:[0]
push eax
mov eax, 0x2db4
call fcn.004a4490
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.00435910
mov eax, dword [0x4f45c8]
movsx eax, byte [eax + 0x4ca34c]
mov cl, byte [0x4f5fec]
xor ebp, ebp
mov dword [0x4c8ddc], eax
neg eax
sbb eax, eax
mov dword [0x4c8dd8], eax
mov al, byte [0x4f5feb]
mov dword [0x51cce0], ebp
mov dword [0x51cce4], ebp
mov dword [0x51cccc], ebp
mov dword [0x51ccc8], ebp
mov dword [0x4d56e8], ebp
mov dword [0x4d5b78], ebp
mov dword [0x4c8de0], 0x4d5b78
mov dword [0x4d5708], ebp
mov dword [0x4d5704], ebp
mov dword [0x51ccc4], ebp
mov dword [0x51ccc0], ebp
cmp al, 0x52
jne 0x49f943
mov dword [0x4d5b64], 3
test cl, cl
je 0x49f949
mov dword [0x4d5b64], ebp
xor edx, edx
cmp al, 0x53
sete dl
mov dword [0x4d5b6c], edx
cmp al, 0x52
jne 0x49f969
mov dword [0x4d5b68], 1
cmp cl, 0x4e
je 0x49f96f
mov dword [0x4d5b68], ebp
cmp byte [0x4f6c1c], 0
je 0x49fb1d
push 0x4f6c1c
call fcn.004a0fc0
mov dword [0x4d5708], eax
cmp eax, ebp
jne 0x49f9a5
mov ecx, 0x4d56b4
call fcn.00428bf0
push 0x4b8a2e
push 4
call fcn.0049f310
cmp word [0x4f701c], bp
je 0x49f9c6
push 0x4f701c
call fcn.004a1040
mov dword [0x4d5704], eax
cmp eax, ebp
je 0x49f98f
mov eax, dword [0x4d5708]
cmp byte [0x4f4623], 0
je 0x49f9fe
push eax
call fcn.00451360
test al, al
je 0x49f9fe
movsx eax, byte [0x4f5feb]
push eax
push 0x4b9060
call fcn.004a3a30
add esp, 8
test eax, eax
je 0x49f9fe
mov ecx, dword [0x4d5708]
push ecx
call fcn.004327e0
cmp dword [0x4d5b64], ebp
je 0x49fa9b
xor eax, eax
lea esp, [esp]
movzx ecx, word [eax + 0x4bbe24]
mov word [esp + eax + 0x25c4], cx
add eax, 2
cmp cx, bp
jne 0x49fa10
mov edx, dword [0x4d5704]
push edx
call fcn.004515b0
mov edx, eax
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x49fa35
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 0x49fa50
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.00460a30
push eax
lea ecx, [esp + 0x44]
push ecx
mov edx, 0x4c8
call fcn.0046b810
add esp, 0xc
lea edx, [esp + 0x3c]
push edx
call fcn.00485490
call fcn.004a2560
mov esi, eax
cmp esi, ebp
je 0x49fb18
lea eax, [esi - 2]
cmp eax, 9
ja case.0x49fab5.5
movzx eax, byte [eax + 0x4a0c6c]
jmp dword [eax*4 + 0x4a0c5c]
push 0x2ad
call fcn.00460a30
mov ecx, dword [0x4d5704]
push eax
push ecx
call fcn.00492ce0
mov eax, dword [0x4d5708]
add esp, 8
push eax
push esi
jmp 0x49f9a0
mov ecx, 0x4d56b4
call fcn.00428bf0
mov eax, dword [0x4d5708]
push eax
push esi
jmp 0x49f9a0
mov edx, dword [0x4d5708]
push ebp
push edx
push ebp
push ebp
mov ecx, 0x4d56b4
call fcn.00429360
mov eax, dword [0x4d5708]
push eax
push esi
jmp 0x49f9a0
mov al, byte [0x4f5feb]
cmp al, 0x44
jne 0x49fb3f
call fcn.0047bf30
cmp eax, ebp
je 0x49fb3a
cmp eax, 0xffffffff
je 0x49fb3a
push 0x4b8a2e
push eax
jmp 0x49f9a0
mov al, byte [0x4f5feb]
cmp al, 0x41
jne 0x49fb48
call fcn.0047bc90
call fcn.00432d40
cmp dword [0x4d56f8], ebp
je 0x49fb64
mov ecx, dword [0x4d56f0]
push ecx
call fcn.004a3dff
add esp, 4
mov esi, dword [0x4d5b70]
mov dword [0x51ccd0], ebp
mov dword [0x51ccd4], ebp
mov dword [0x51ccd8], ebp
mov dword [0x51ccdc], ebp
mov dword [esp + 0x18], ebp
cmp esi, ebp
je 0x49fd58
cmp dword [esi + 0x50], ebp
je 0x49fd4d
mov eax, dword [esi + 0x38]
push 0x400
lea edx, [esp + 0x25c8]
push edx
push eax
call fcn.00452660
cmp byte [0x4f45e1], 0
je 0x49fbd2
mov ecx, dword [esi + 0x38]
push ecx
call fcn.0049f4e0
test al, 0x20
jne 0x49fbd2
mov dword [esi + 0x50], ebp
mov dword [esi + 0x54], 1
jmp 0x49fd4d
mov edx, dword [esi + 0x14]
add dword [0x51ccd8], edx
adc dword [0x51ccdc], ebp
cmp byte [0x4f5feb], 0x44
je 0x49fd49
mov eax, dword [esi + 0x38]
push ebp
push ebp
push eax
call fcn.0047ba60
mov edx, dword [0x51cce0]
mov ecx, dword [0x51cce4]
cmp eax, ebp
je 0x49fc2c
cmp eax, edx
jb 0x49fc2c
cmp ecx, ebp
je 0x49fc15
cmp eax, ecx
jae 0x49fc2c
cmp byte [0x4f45e5], 0
jne 0x49fc27
cmp byte [0x4f45e4], 0
je 0x49fc67
cmp eax, dword [esi + 8]
ja 0x49fc67
mov dword [esi + 0x50], ebp
cmp eax, ebp
je 0x49fc46
cmp eax, edx
jb 0x49fc46
cmp ecx, ebp
je 0x49fc3f
cmp eax, ecx
jae 0x49fc46
mov eax, 1
jmp 0x49fc48
xor eax, eax
mov dword [esi + 0x54], eax
cmp eax, ebp
je 0x49fd4d
mov ecx, dword [esi + 0x14]
sub dword [0x51ccd8], ecx
sbb dword [0x51ccdc], ebp
jmp 0x49fd4d
cmp byte [0x4f5feb], 0x44
je 0x49fd49
mov eax, dword [0x4f45c4]
cmp eax, ebp
je 0x49fd49
cmp eax, 2
sete bl
cmp eax, 4
jne case.default.0x49fd0f
xor eax, eax
jmp 0x49fca0
mov cl, byte [esp + eax + 0x25c4]
mov byte [esp + eax + 0x21c4], cl
inc eax
test cl, cl
jne 0x49fca0
lea edx, [esp + 0x21c4]
push edx
mov edi, 2
call fcn.00451610
movsx eax, byte [eax]
push eax
call fcn.00451020
test al, al
jne 0x49fd07
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.0040aea0
mov edx, dword [str.YNANC]
movsx ecx, al
push ecx
push edx
call fcn.004a3a30
sub eax, dword [str.YNANC]
add esp, 8
inc eax
mov edi, eax
lea eax, [edi - 2]
cmp eax, 3
ja case.default.0x49fd0f
jmp dword [eax*4 + 0x4a0c78]
mov dword [0x4f45c4], 1
jmp case.default.0x49fd0f
mov dword [0x4f45c4], 2
mov dword [esi + 0x50], ebp
jmp 0x49fd4d
push 0xff
mov ecx, 0x4d56b4
call fcn.004294a0
test bl, bl
je 0x49fd49
mov dword [esi + 0x50], ebp
jmp 0x49fd4d
inc dword [esp + 0x18]
mov esi, dword [esi + 0x58]
cmp esi, ebp
jne 0x49fb8e
lea ecx, [esp + 0x1938]
call fcn.0046d1b0
lea ecx, [esp + 0x195c]
call fcn.0046d1b0
lea ecx, [esp + 0x1980]
call fcn.0046d1b0
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push eax
mov dword [esp + 0x2c], ebp
push ecx
xor ebp, ebp
call fcn.00431510
test al, al
je 0x49fdc9
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push ebp
lea edx, [esp + 0xd28]
push edx
push eax
push ecx
call fcn.00434fa0
test al, al
je 0x49fdc9
mov edx, dword [esp + 0x1924]
mov ebp, dword [esp + 0x1928]
mov dword [esp + 0x28], edx
mov esi, dword [0x4d5b78]
test esi, esi
je 0x49fefc
jmp 0x49fde0
mov eax, dword [esi + 0xc]
add dword [0x51ccd8], eax
adc dword [0x51ccdc], 0
mov ecx, dword [esi]
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x49fdf7
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 0x49ff99
jl 0x49fe29
cmp dword [esp + 0x28], 0x80000000
jae 0x49ff99
push 0
push 0
push ecx
call fcn.0047ba60
mov ecx, dword [esi]
mov edi, eax
test edi, edi
push ecx
sete bl
call fcn.00451610
movsx edx, byte [eax]
push edx
call fcn.00451020
cmp byte [0x4f45e1], 0
mov byte [esp + 0x24], al
je 0x49fe64
mov eax, dword [esi]
push eax
call fcn.0049f4e0
test al, 0x20
je 0x49fec5
mov al, byte [0x4f5feb]
cmp al, 0x44
je 0x49fec5
cmp al, 0x41
jne 0x49fe7a
cmp byte [0x4f45e4], 0
jne 0x49fec5
mov ecx, dword [esp + 0x24]
mov edx, dword [esi]
push 1
push 1
push ecx
push edx
mov ecx, 0x4f0ca0
call fcn.0041c5b0
test al, al
jne 0x49fec5
test bl, bl
jne 0x49fec9
cmp edi, dword [0x51cce0]
jb 0x49feec
mov eax, dword [0x51cce4]
test eax, eax
je 0x49fead
cmp edi, eax
jae 0x49feec
mov eax, dword [0x4d5708]
mov ecx, dword [esi + 8]
push eax
push ecx
call fcn.0046a1f0
test eax, eax
je 0x49feec
mov esi, dword [esi + 0x14]
jmp 0x49fef4
test bl, bl
je 0x49feec
mov edx, dword [esi + 8]
push edx
call fcn.0046a3f0
push eax
push 0x206
call fcn.00460a30
push eax
mov eax, dword [0x4d5704]
push eax
call fcn.00492ce0
add esp, 0xc
push esi
call fcn.00432c60
mov esi, eax
test esi, esi
jne 0x49fde0
cmp dword [esp + 0x18], 0
mov eax, dword [0x4d5b70]
jne 0x4a000e
cmp dword [0x4d5b78], 0
jne 0x4a000e
cmp dword [0x4d5b68], 0
jne 0x4a000e
mov ecx, dword [0x4f460c]
mov edx, dword [0x4d5b64]
mov esi, dword [0x4d5b6c]
test eax, eax
je 0x49ff61
test ecx, ecx
jne 0x4a000e
test edx, edx
jne 0x4a0068
test esi, esi
jne 0x4a0017
cmp word [0x4f2cb0], si
jne 0x4a0017
cmp byte [0x4f45e5], 0
jne 0x4a0007
cmp byte [0x4f45e4], 0
jne 0x4a0007
test eax, eax
jne 0x49ffbf
test ecx, ecx
jne 0x49ff8b
test edx, edx
jne 0x49ff8b
test esi, esi
je 0x49ffbf
mov edx, dword [0x4d5708]
push edx
push 0xd
jmp 0x49f9a0
push 0x3b7
call fcn.00460a30
mov ecx, dword [0x4d5704]
push eax
push ecx
call fcn.00492ce0
add esp, 8
push 0x4b8a2e
push 5
jmp 0x49f9a0
mov al, byte [0x4f5feb]
cmp al, 0x41
jne 0x49ffdb
push 0x340
call fcn.00460a30
push eax
mov eax, dword [0x4d5704]
push eax
jmp 0x49fff1
cmp al, 0x44
jne 0x49fff9
push 0x345
call fcn.00460a30
mov ecx, dword [0x4d5704]
push eax
push ecx
call fcn.00492ce0
add esp, 8
mov edx, dword [0x4d5708]
push edx
push 0xc
jmp 0x49f9a0
push 0
jmp 0x4a0a1c
cmp dword [0x4d5b64], 0
jne 0x4a0068
cmp byte [0x4f0cb0], 0
je 0x4a002c
test eax, eax
jne 0x4a002c
cmp dword [0x4d5700], eax
je 0x4a0068
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push eax
push ecx
call fcn.004315e0
cmp dword [0x4d5b70], 0
mov dword [esp + 0x24], eax
jne 0x4a0070
cmp dword [0x4d5700], 0
jne 0x4a0070
mov edx, dword [0x4d5704]
mov eax, dword [0x4d5708]
push edx
push eax
call fcn.004317e0
jmp 0x4a0070
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.00431510
mov bl, al
cmp dword [0x4d5b70], edi
jne 0x4a00a3
cmp dword [0x4d5700], edi
je 0x4a00f0
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push edi
push 0x4b8a34
push eax
push ecx
call fcn.00431ab0
mov esi, eax
mov dword [0x51ccc0], eax
mov dword [esp + 0x18], esi
cmp eax, edi
jne 0x4a00f0
mov edx, dword [0x4d5704]
push edx
push 0x1f5
call fcn.00460a30
push eax
call fcn.004926f0
add esp, 8
push 0x4b8a2e
push 0xd
jmp 0x49f9a0
test bl, bl
je 0x4a0101
mov eax, dword [0x4d5708]
push eax
call fcn.004331d0
jmp 0x4a0110
mov ecx, dword [0x4d5708]
push ecx
call fcn.004b316a
add esp, 4
mov dword [0x51cccc], eax
cmp eax, edi
je 0x49f98f
test bl, bl
jne 0x4a0192
mov ecx, dword [0x4d5704]
cmp ecx, edi
je 0x4a0192
push ecx
call fcn.004a5da1
mov ecx, eax
add esp, 4
mov dword [0x51ccc8], ecx
cmp ecx, edi
je 0x49f98f
mov eax, dword [0x51cccc]
push edi
push 0x4b8e04
push ecx
push eax
call fcn.00431ab0
mov ecx, eax
mov dword [esp + 0x20], ecx
mov dword [0x51ccc4], ecx
cmp ecx, edi
jne 0x4a019a
mov edx, dword [0x51cccc]
push edx
call fcn.0046a3f0
push eax
push 0x1f6
call fcn.00460a30
push eax
call fcn.004926f0
add esp, 8
push 0x4b8a2e
push 0xa
jmp 0x49f9a0
mov ecx, dword [0x51ccc8]
jmp 0x4a0149
mov eax, dword [0x4d5700]
cmp eax, edi
je 0x4a01cc
push eax
push ecx
push esi
call fcn.004332b0
cmp eax, edi
je 0x4a01c7
mov ecx, dword [0x51cccc]
cmp eax, 0xa
je 0x4a01c0
mov ecx, dword [0x4d5708]
push ecx
push eax
jmp 0x49f9a0
mov eax, dword [0x4d5700]
mov dword [0x4d56ec], eax
mov al, byte [0x4f5feb]
mov dword [esp + 0x28], edi
cmp al, 0x41
jne 0x4a0202
cmp dword [0x4d5b70], edi
mov edx, dword [0x4d5704]
setne al
movzx ecx, al
mov eax, dword [0x4d5708]
push ecx
push edx
push eax
call fcn.00409cb0
mov al, byte [0x4f5feb]
mov esi, dword [0x4d5b70]
mov dword [esp + 0x14], 0x4d5b70
cmp esi, edi
je 0x4a04f5
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
jmp 0x4a0227
mov al, byte [0x4f5feb]
mov ebx, 1
cmp dword [esi + 0x50], ebx
jne 0x4a0330
cmp al, 0x41
jne 0x4a02ad
mov ecx, dword [esi + 0x4c]
push 0
push 0
push ebx
push 0
push ecx
call fcn.00409ce0
push ebp
push esi
call fcn.004a3320
test eax, eax
je 0x4a0262
cmp eax, 0x12
je 0x4a0270
cmp eax, 0xffffffff
jne 0x4a05a1
cmp eax, 0x12
je 0x4a0270
cmp eax, 0xffffffff
jne 0x4a04e4
mov edx, dword [esi + 0x4c]
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push 0
push edx
push eax
push ecx
mov ecx, 0x4d56b4
mov dword [esp + 0x38], ebx
call fcn.00429170
mov edx, dword [esp + 0x18]
push ebp
push edx
push esi
call fcn.004a1790
test eax, eax
jne 0x49fb2f
mov dword [esi + 0x50], eax
jmp 0x4a04e4
cmp byte [0x4e8c4c], 0
jne 0x4a04f5
mov eax, dword [esi + 0x4c]
push 0
push 0
push eax
call fcn.0040aa50
mov ecx, dword [esi + 0x48]
mov ebx, dword [esi + 0x58]
push ecx
call fcn.004a3dff
mov edx, dword [esi + 0x4c]
push edx
call fcn.004a3dff
add esp, 8
cmp dword [esi + 0x1c], 0
je 0x4a02f1
mov eax, dword [esi + 0x3c]
push eax
call fcn.004a3dff
add esp, 4
cmp dword [esi + 0x20], 0
je 0x4a0308
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x3c]
je 0x4a0308
push eax
call fcn.004a3dff
add esp, 4
cmp dword [esi + 0x24], 0
je 0x4a031a
mov ecx, dword [esi + 0x44]
push ecx
call fcn.004a3dff
add esp, 4
push esi
call fcn.004a3dff
add esp, 4
mov dword [edi], ebx
dec dword [0x4d56f8]
jmp 0x4a04eb
cmp byte [0x4e8c4c], 0
jne 0x4a04f5
cmp al, 0x44
jne 0x4a034d
mov edx, dword [esi + 0x4c]
push ebx
push 0
push edx
call fcn.0040aa50
cmp dword [0x4d5b68], 0
mov edi, dword [0x4d5b64]
je 0x4a04ca
lea ecx, [esp + 0x3c]
call fcn.004021f0
mov dword [esp + 0x2dd0], 0
push 0xce8
lea eax, [esp + 0x40]
push 0
push eax
call fcn.004a44c0
mov ecx, dword [esi + 0x48]
add esp, 0xc
push ecx
call fcn.00451610
movsx edx, byte [eax]
push edx
call fcn.00451020
mov ecx, dword [esi + 0x48]
mov byte [esp + 0x1e], al
push 0x3ff
lea eax, [esp + 0x70]
push eax
push ecx
call fcn.00452660
lea edx, [esp + 0x25c4]
push edx
lea eax, [esp + 0x70]
push eax
call sub.USER32.dll_CharToOemA
lea ecx, [esp + 0x21c4]
push ecx
lea edx, [esp + 0x25c8]
push edx
call sub.USER32.dll_OemToCharA
lea ecx, [esp + 0x21c4]
lea eax, [esp + 0x6c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4a0403
test dl, dl
je 0x4a03ff
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4a0403
add eax, 2
add ecx, 2
test dl, dl
jne 0x4a03e3
xor eax, eax
jmp 0x4a0408
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov eax, 0x800
sete byte [esp + 0x1f]
test word [esi + 4], ax
jne 0x4a042f
movzx eax, word [esi]
push eax
shr eax, 8
push eax
call fcn.004a0dd0
test al, al
je 0x4a042f
mov bl, 1
jmp 0x4a0431
xor bl, bl
lea ecx, [esp + 0x6c]
push ecx
mov edx, ecx
push edx
call sub.USER32.dll_CharToOemA
cmp byte [esp + 0x1f], 0
je 0x4a04b6
lea eax, [esp + 0x3c]
push eax
push 0x4f0ca0
call fcn.00453e50
test al, al
je 0x4a04b6
cmp byte [esp + 0x1e], 0
je 0x4a0469
lea ecx, [esp + 0x6c]
push ecx
call fcn.00451a60
push 0x400
push 0
lea edx, [esp + 0x74]
push edx
call fcn.004526f0
lea eax, [esp + 0x6c]
push eax
mov ecx, eax
push ecx
call sub.USER32.dll_OemToCharA
test bl, bl
je 0x4a0493
mov edx, 0xb17
mov word [esi], dx
mov eax, dword [esi + 0x48]
push eax
call fcn.004a3dff
lea ecx, [esp + 0x70]
push ecx
call fcn.004b316a
mov dword [esi + 0x48], eax
add esp, 8
mov dword [0x4d5b64], 3
mov dword [esp + 0x2dd0], 0xffffffff
lea ecx, [esp + 0x3c]
call fcn.004017f0
mov edx, dword [esp + 0x18]
push ebp
push edx
push esi
call fcn.004a1790
mov dword [0x4d5b64], edi
test eax, eax
jne 0x49fb2f
lea edi, [esi + 0x58]
mov dword [esp + 0x14], edi
mov esi, dword [edi]
test esi, esi
jne 0x4a0222
mov edi, dword [0x4d5b78]
test edi, edi
je 0x4a0612
xor ebx, ebx
cmp byte [0x4e8c4c], 0
jne 0x4a0612
push 0x5c
call fcn.004a3d3c
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x49f98f
mov dword [esi + 0x58], ebx
mov eax, dword [edi]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 4]
mov dword [edi], ebx
lea ebp, [esi + 0x58]
push ebx
mov dword [esi + 0x48], ecx
mov edx, dword [edi + 8]
mov dword [edi + 4], ebx
push ebx
mov dword [esi + 0x4c], edx
mov dword [edi + 8], ebx
mov eax, dword [esi + 0x4c]
push ebx
push ebx
push eax
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.00409ce0
mov ecx, dword [esp + 0x20]
push ecx
push esi
call fcn.004a3320
cmp eax, ebx
je 0x4a0585
cmp eax, 0x12
je 0x4a05b9
cmp eax, 0xffffffff
jne 0x4a0674
cmp eax, 0x12
je 0x4a05b9
cmp eax, 0xffffffff
je 0x4a05b9
mov edx, dword [esp + 0x14]
mov dword [edx], esi
inc dword [0x4d56f8]
mov dword [esp + 0x14], ebp
jmp 0x4a0602
cmp byte [0x4e8c4c], 0
jne 0x4a04f5
push 0x4b8a2e
push eax
jmp 0x49f9a0
mov eax, dword [esi + 0x4c]
mov ecx, dword [0x4d5704]
mov edx, dword [0x4d5708]
push ebx
push eax
push ecx
push edx
mov ecx, 0x4d56b4
mov dword [esp + 0x38], 1
call fcn.00429170
mov eax, dword [esi + 0x38]
push eax
call fcn.004a3dff
mov ecx, dword [esi + 0x48]
push ecx
call fcn.004a3dff
mov edx, dword [esi + 0x4c]
push edx
call fcn.004a3dff
push esi
call fcn.004a3dff
add esp, 0x10
push edi
call fcn.00432c60
mov edi, eax
cmp edi, ebx
jne 0x4a0505
xor ebp, ebp
cmp word [0x4f2cb0], bp
je 0x4a07ea
cmp dword [0x4d5b64], ebp
jne 0x4a07ea
push ebp
push 0x4b8a34
push 0x4f2cb0
call fcn.00431b90
mov esi, eax
mov dword [esp + 0x14], esi
cmp esi, ebp
jne 0x4a0688
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push 0x4f2cb0
push 0x4f28b0
push eax
push ecx
mov ecx, 0x4d56b4
call fcn.00429170
push 0x4b8a2e
push 0x12
jmp 0x49f9a0
cmp byte [0x4e8c4c], 0
jne 0x4a0612
push 0x4d5710
push eax
jmp 0x49f9a0
cmp dword [0x4d56f4], ebp
je 0x4a069f
mov edx, dword [0x4d5b74]
push edx
call fcn.004a3dff
add esp, 4
push 0x8000
call fcn.004a3d3c
add esp, 4
mov dword [0x4d5b74], eax
cmp eax, ebp
je 0x49f98f
push esi
push 0x7fff
push 1
push eax
call fcn.004a5982
mov ecx, dword [0x4d5b74]
mov dword [0x4d56f4], eax
add esp, 0x10
mov byte [ecx + eax], 0
cmp dword [0x4f34b0], 2
jne 0x4a06ef
mov eax, dword [0x4d5b74]
push eax
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x4f34b0], 3
jne 0x4a07df
mov ebx, dword [0x4d5b74]
mov al, byte [ebx]
cmp al, 0xff
jne 0x4a0715
cmp byte [ebx + 1], 0xfe
jne 0x4a0715
mov edi, 1
jmp 0x4a0717
xor edi, edi
cmp al, 0xfe
jne 0x4a0728
cmp byte [ebx + 1], 0xff
jne 0x4a0728
mov ebp, 1
jmp 0x4a072a
xor ebp, ebp
mov edx, dword [0x4d56f4]
inc edx
push edx
lea ecx, [esp + 0x34]
call fcn.0040b4f0
mov dword [esp + 0x2dd0], 1
xor edx, edx
lea ecx, [edx + 2]
test edi, edi
jne 0x4a0758
test ebp, ebp
jne 0x4a0758
lea edi, [edx + 1]
xor ecx, ecx
mov esi, dword [esp + 0x30]
cmp ecx, dword [0x4d56f4]
jae 0x4a0798
lea eax, [ecx + ebp]
add eax, ebx
sub edi, ebp
jmp 0x4a0770
movzx bx, byte [eax + edi]
mov ebp, pe_nt_image_headers32
imul bx, bp
movzx bp, byte [eax]
add bx, bp
mov word [esi + edx*2], bx
add ecx, 2
inc edx
add eax, 2
cmp ecx, dword [0x4d56f4]
jb 0x4a0770
xor eax, eax
mov word [esi + edx*2], ax
mov ecx, dword [0x4d56f4]
mov edx, dword [0x4d5b74]
dec ecx
push ecx
push edx
push esi
call fcn.00472810
mov eax, dword [0x4d56f4]
mov ecx, dword [0x4d5b74]
mov byte [ecx + eax - 1], 0
mov dword [esp + 0x2dd0], 0xffffffff
test esi, esi
je 0x4a07db
push esi
call fcn.004a3dff
add esp, 4
mov esi, dword [esp + 0x14]
push esi
call fcn.004a5d25
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 0x4a08c8
mov ebp, dword [esp + 0x20]
cmp dword [0x4d5b64], 0
jne 0x4a08f6
mov edx, 0x800
test word [esi + 4], dx
jne 0x4a08f6
movzx eax, word [esi]
push eax
shr eax, 8
push eax
call fcn.004a0dd0
test al, al
je 0x4a08f6
mov eax, dword [esi + 0x48]
push 0x400
push eax
lea ecx, [esp + 0x25cc]
push ecx
mov bl, 1
call fcn.0046a230
mov eax, dword [esi + 0x48]
push eax
push eax
call sub.USER32.dll_CharToOemA
push ebp
push esi
call fcn.004a1390
test eax, eax
jne 0x4a08fd
test bl, bl
je 0x4a088a
mov edx, dword [esi + 0x48]
lea ecx, [esp + 0x25c4]
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4a0880
mov edx, dword [esi + 0x24]
add edx, dword [esi + 0x20]
mov eax, dword [0x4d56ec]
add edx, dword [esi + 0x18]
cmp byte [esp + 0x14], 0
lea ecx, [eax + edx + 0x2e]
mov dword [0x4d56ec], ecx
jne 0x4a08ae
call fcn.00446a80
mov esi, dword [esi + 0x58]
inc dword [esp + 0x14]
test esi, esi
jne 0x4a0809
mov ebx, dword [esp + 0x14]
mov eax, dword [0x4d56ec]
xor ebp, ebp
mov esi, dword [esp + 0x20]
mov ecx, dword [0x4d5b74]
mov edx, dword [0x4d56f4]
push esi
push ecx
push edx
push edi
sub eax, edi
push eax
push ebx
call fcn.004a1650
cmp eax, ebp
je 0x4a090a
mov ecx, dword [0x51cccc]
push ecx
push eax
jmp 0x49f9a0
xor bl, bl
jmp 0x4a085c
mov edx, dword [0x51cccc]
push edx
push eax
jmp 0x49f9a0
push esi
mov dword [0x51ccc4], ebp
call fcn.004a5d25
add esp, 4
test eax, eax
je 0x4a092b
mov edx, dword [0x51cccc]
push edx
push 0xa
jmp 0x49f9a0
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x4a093c
push eax
call fcn.004a5d25
add esp, 4
call fcn.00421b60
cmp byte [0x4e8c4c], 0
je 0x4a0a50
mov eax, dword [0x51ccc8]
mov ecx, dword [0x51cccc]
push eax
push ecx
call fcn.004317e0
mov ecx, dword [0x51cccc]
push ecx
call fcn.004a3dff
mov eax, dword [0x51ccc8]
add esp, 4
mov dword [0x51cccc], ebp
cmp eax, ebp
je 0x4a0987
push eax
call fcn.004a3dff
add esp, 4
mov dword [0x51ccc8], ebp
cmp ebx, ebp
jne 0x4a09a3
mov edx, dword [0x4d5704]
mov eax, dword [0x4d5708]
push edx
push eax
call fcn.004317e0
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x4a09c4
cmp eax, 0xffffffff
je 0x4a09c4
mov ecx, dword [0x4d5704]
mov edx, dword [0x4d5708]
push eax
push ecx
push edx
call fcn.00431610
cmp byte [0x4f45e0], 0
je 0x4a0a10
mov esi, dword [0x4d5b70]
cmp esi, ebp
je 0x4a0a10
mov edi, 1
lea esp, [esp]
cmp dword [esi + 0x50], edi
je 0x4a09ea
cmp dword [esi + 0x54], ebp
je 0x4a0a09
mov eax, dword [esi + 0x38]
push eax
call fcn.0049f4e0
cmp eax, 0xffffffff
je 0x4a0a09
test al, 0x20
je 0x4a0a09
mov ecx, dword [esi + 0x38]
and eax, 0xffffffdf
push eax
push ecx
call fcn.0049f570
mov esi, dword [esi + 0x58]
cmp esi, ebp
jne 0x4a09e0
mov eax, dword [esp + 0x28]
neg eax
sbb eax, eax
and eax, 0x12
push eax
lea ecx, [esp + 0xd28]
call fcn.0049f610
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.004a3c63
add esp, 0x2dc0
ret
cmp dword [0x4d5b64], ebp
je 0x4a0b9b
mov edx, dword [str.rebuilt.]
mov eax, dword [0x4bbe4c]
mov cl, byte [0x4bbe50]
mov dword [esp + 0x21c4], edx
mov edx, dword [0x4d5708]
push edx
mov dword [esp + 0x21cc], eax
mov byte [esp + 0x21d0], cl
call fcn.00451530
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0a90
lea edi, [esp + 0x21c4]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4a0aa1
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 1
lea eax, [esp + 0x21c8]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.004525d0
push ebp
lea ecx, [esp + 0x21c8]
push ecx
call fcn.00431510
test al, al
je 0x4a0b1c
push ebp
push ebp
push 0x7fffffff
push 0x7fffffff
push ebp
lea edx, [esp + 0x21d8]
push edx
call fcn.0040aea0
cmp al, 0x4e
je 0x4a0b7c
cmp al, 0x43
je 0x4a0b7c
push ebp
push ebp
lea eax, [esp + 0x21cc]
push eax
call fcn.00431610
lea ecx, [esp + 0x21c4]
push ecx
call fcn.00432550
cmp byte [esp + 0x21c4], 0
je 0x4a0960
mov edx, dword [0x51cccc]
push ebp
lea ecx, [esp + 0x21c8]
push ecx
push ebp
push edx
call fcn.00431700
test al, al
jne 0x4a0960
lea eax, [esp + 0x21c4]
push eax
call fcn.0046a3f0
mov ecx, dword [0x51cccc]
push eax
push ecx
call fcn.0046a3f0
push eax
push 0x207
call fcn.00460a30
push eax
push ebp
call fcn.00492ce0
add esp, 0x10
jmp 0x4a0960
mov edx, dword [0x51ccc8]
mov eax, dword [0x51cccc]
push edx
push eax
call fcn.004317e0
mov byte [esp + 0x21c4], 0
jmp 0x4a0960
mov edx, dword [0x51cccc]
mov eax, dword [0x4d5704]
mov ecx, dword [0x4d5708]
push edx
push eax
push ecx
call fcn.004333b0
mov esi, eax
cmp esi, ebp
je 0x4a0960
mov edx, dword [0x4d5704]
mov eax, dword [0x51cccc]
push edx
push eax
call fcn.0046a3f0
push eax
push 0x207
call fcn.00460a30
push eax
push ebp
call fcn.00492ce0
mov ecx, dword [0x4d5708]
add esp, 0x10
push ebp
push ecx
mov ecx, 0x4d56b4
call fcn.00429570
cmp esi, 0xf
jne 0x4a0c25
mov edx, dword [0x4d5704]
mov eax, dword [0x4d5708]
push edx
push eax
call fcn.00431510
test al, al
je 0x4a0c25
mov ecx, dword [0x51ccc8]
mov edx, dword [0x51cccc]
push ecx
push edx
call fcn.004317e0
mov eax, dword [0x51cccc]
push eax
call fcn.004a3dff
mov eax, dword [0x51ccc8]
add esp, 4
mov dword [0x51cccc], ebp
cmp eax, ebp
je 0x4a0c4b
push eax
call fcn.004a3dff
add esp, 4
push 0x4b8a2e
mov dword [0x51ccc8], ebp
push esi
jmp 0x49f9a0