Function at 0x49e6c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4f2846
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x264
push ebx
mov al, byte [esp + 6]
push ebp
push esi
push edi
mov ebx, ecx
sub esp, 0x10
mov dword [esp + 0x54], ebx
mov ebp, esp
mov dword [esp + 0x4c], esp
push 0
mov ecx, ebp
mov byte [ebp], al
call fcn.00414090
mov edi, 0x520010
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x78], ecx
push ecx
mov ecx, ebp
call fcn.004144a0
test al, al
je 0x49e743
mov eax, dword [esp + 0x74]
mov edi, dword [ebp + 4]
mov ecx, eax
mov esi, 0x520010
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.00414480
push 0
lea ecx, [esp + 0x7c]
call fcn.004ca360
lea ecx, [esp + 0x14]
mov dword [esp + 0x27c], 0
call fcn.004be1a0
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x175]
mov byte [esp + 0x174], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [esp + 0x12]
push 0
lea ecx, [esp + 0x30]
mov byte [esp + 0x280], 1
mov byte [esp + 0x30], al
call fcn.00414090
mov edi, 0x520010
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x30]
push ebp
call fcn.004144a0
test al, al
je 0x49e7dc
mov edi, dword [esp + 0x30]
mov ecx, ebp
mov edx, ecx
mov esi, 0x520010
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x30]
call fcn.00414480
mov al, byte [esp + 0x12]
push 0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x280], 2
mov byte [esp + 0x1c], al
call fcn.00414090
mov edi, 0x520010
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.004144a0
test al, al
je 0x49e83b
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
mov esi, 0x520010
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.00414480
lea esi, [ebx + 0x74]
push 0
mov ecx, esi
mov byte [esp + 0x280], 3
call fcn.004be4c0
movzx ax, al
push eax
mov ecx, esi
call fcn.004be4c0
push esi
mov ecx, ebx
mov byte [esp + 0x16], al
call fcn.004a26c0
fstp qword [esp + 0x4c]
xor eax, eax
mov al, byte [ebx + 0x40]
cmp eax, 4
ja case.default.0x49e879
jmp dword [eax*4 + 0x49f9f0]
mov al, byte [esp + 0x12]
test al, al
jne 0x49e8db
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x512b74
call fcn.004be240
lea ecx, [esp + 0x124]
push ecx
call fcn.004cfca0
add esp, 8
mov edx, dword [0x4f73d0]
lea ecx, [ebx + 0x64]
push edx
push 0
push eax
mov byte [esp + 0x288], 4
call fcn.00413e90
mov byte [esp + 0x27c], 3
push 1
lea ecx, [esp + 0x124]
jmp 0x49e97a
push ecx
cmp al, 1
mov ecx, esp
jne 0x49e92f
mov dword [esp + 0x40], esp
push 6
push 0x512b6c
call fcn.004be240
lea eax, [esp + 0x154]
push eax
call fcn.004cfca0
add esp, 8
mov ecx, dword [0x4f73d0]
mov byte [esp + 0x27c], 5
push ecx
push 0
push eax
lea ecx, [ebx + 0x64]
call fcn.00413e90
mov byte [esp + 0x27c], 3
push 1
lea ecx, [esp + 0x154]
jmp 0x49e97a
mov dword [esp + 0x40], esp
push 6
push 0x5128f0
call fcn.004be240
lea edx, [esp + 0x114]
push edx
call fcn.004cfca0
add esp, 8
mov ecx, dword [0x4f73d0]
mov byte [esp + 0x27c], 6
push ecx
push 0
push eax
lea ecx, [ebx + 0x64]
call fcn.00413e90
mov byte [esp + 0x27c], 3
push 1
lea ecx, [esp + 0x114]
call fcn.00414090
push 6
push 0x512b74
lea ecx, [esp + 0x6c]
mov byte [ebx + 0x41], 0
mov byte [ebx + 0x42], 1
call fcn.004be240
mov ecx, dword [ebx + 0x84]
lea esi, [ebx + 0x7c]
push eax
push 1
push ecx
mov ecx, esi
mov byte [esp + 0x288], 7
call fcn.004148e0
lea ecx, [esp + 0x64]
mov byte [esp + 0x27c], 3
call fcn.004be2e0
push 6
push 0x512b6c
lea ecx, [esp + 0x88]
call fcn.004be240
mov ecx, dword [esi + 8]
push eax
push 1
push ecx
mov ecx, esi
mov byte [esp + 0x288], 8
call fcn.004148e0
lea ecx, [esp + 0x80]
mov byte [esp + 0x27c], 3
call fcn.004be2e0
mov ecx, ebx
call fcn.004a2cb0
push 1
lea ecx, [esp + 0x1c]
mov esi, eax
mov byte [esp + 0x280], 2
call fcn.00414090
push 1
lea ecx, [esp + 0x30]
mov byte [esp + 0x280], 1
call fcn.00414090
lea ecx, [esp + 0x14]
mov byte [esp + 0x27c], 0
call fcn.004be2e0
push 1
lea ecx, [esp + 0x70]
mov dword [esp + 0x280], 0xffffffff
call fcn.00414090
jmp 0x49f9d2
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x5128e8
call fcn.004be240
lea edx, [esp + 0x144]
push edx
call fcn.004cfca0
add esp, 8
mov ecx, dword [0x4f73d0]
mov byte [esp + 0x27c], 9
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.00413e90
push 1
lea ecx, [esp + 0x144]
mov byte [esp + 0x280], 3
call fcn.00414090
xor ebx, ebx
mov ecx, esi
push ebx
call fcn.004be4c0
and eax, 0xff
sub eax, 3
test eax, eax
jle 0x49eb25
lea edx, [ebx + 4]
mov ecx, esi
push edx
call fcn.004be4c0
and eax, 0xff
push eax
lea eax, [esp + 0xe4]
push str._02X
push eax
call fcn.004de8d6
lea edi, [esp + 0xec]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0xe4]
push ecx
lea ecx, [esp + 0x20]
call fcn.00414200
push 0
mov ecx, esi
inc ebx
call fcn.004be4c0
and eax, 0xff
sub eax, 3
cmp ebx, eax
jl 0x49eac6
push 0
push 1
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x60], esp
push ecx
mov ecx, esp
mov dword [esp + 0x5c], esp
push 6
push 0x510e30
call fcn.004be240
push edi
call fcn.004cfca0
sub esp, 8
lea edx, [esp + 0x40]
mov ecx, esp
mov dword [esp + 0x68], esp
push edx
mov byte [esp + 0x2a8], 0xa
call fcn.00413ad0
mov ecx, 0x5200a8
mov byte [esp + 0x2a4], 3
call fcn.004cae60
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x5128e0
call fcn.004be240
lea eax, [esp + 0x104]
push eax
call fcn.004cfca0
add esp, 8
mov ecx, dword [0x4f73d0]
mov byte [esp + 0x27c], 0xb
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.00413e90
push 1
lea ecx, [esp + 0x104]
mov byte [esp + 0x280], 3
call fcn.00414090
push 0
mov ecx, esi
call fcn.004be4c0
and eax, 0xff
lea edx, [esp + 0xe0]
sub eax, 3
push eax
push 0x50f930
push edx
call fcn.004de8d6
lea edi, [esp + 0xec]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
mov eax, dword [0x4f73d0]
mov edx, dword [esp + 0x20]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x49ec1a
call fcn.004de1ab
test esi, esi
jbe 0x49ec61
mov ecx, dword [esp + 0x20]
push 0
lea ebx, [esi + ecx]
lea ecx, [esp + 0x1c]
push ebx
call fcn.004144a0
test al, al
je 0x49ec61
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, esi
lea esi, [esp + 0xe0]
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.00414480
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x5128d8
call fcn.004be240
lea eax, [esp + 0x134]
push eax
call fcn.004cfca0
add esp, 8
mov ecx, dword [0x4f73d0]
mov byte [esp + 0x27c], 0xc
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.00414120
push 1
lea ecx, [esp + 0x134]
mov byte [esp + 0x280], 3
call fcn.00414090
push str.9999999999999999
lea edx, [esp + 0x178]
push 0x510090
push edx
call fcn.004de8d6
mov al, byte [esp + 0x1e]
push ecx
mov ebp, esp
mov dword [esp + 0x50], esp
push 0
mov ecx, ebp
mov byte [ebp], al
call fcn.00414090
lea edi, [esp + 0x184]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
mov ecx, ebp
push ebx
call fcn.004144a0
test al, al
je 0x49ed29
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x184]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 4]
mov dword [ebp + 8], ebx
add ebx, eax
mov byte [ebx], 0
sub esp, 0x10
lea eax, [esp + 0x32]
mov ecx, esp
mov dword [esp + 0x68], esp
push eax
push 0x50f8e4
mov byte [esp + 0x2a4], 0xd
call fcn.00413bf0
sub esp, 0x10
lea edx, [esp + 0x5b]
mov ecx, esp
mov dword [esp + 0xac], esp
push edx
push 0x512878
mov byte [esp + 0x2b4], 0xe
call fcn.00413bf0
sub esp, 0x10
lea eax, [esp + 0x53]
mov ecx, esp
mov dword [esp + 0xc8], esp
push eax
push 0x520010
mov byte [esp + 0x2c4], 0xf
call fcn.00413bf0
sub esp, 0x10
mov byte [esp + 0x2cc], 0x10
mov esi, esp
mov dword [esp + 0x9c], esp
push ecx
mov ecx, esp
mov dword [esp + 0xa8], esp
push 6
push 0x510e30
call fcn.004be240
push esi
call fcn.004cfca0
sub esp, 8
lea edx, [esp + 0x78]
mov ecx, esp
mov dword [esp + 0xb4], esp
push edx
mov byte [esp + 0x2e0], 0x11
call fcn.00413ad0
lea eax, [esp + 0x1c0]
mov ecx, 0x5200a8
push eax
mov byte [esp + 0x2e0], 3
call fcn.004cb120
mov edx, dword [0x4f73d0]
mov cx, word [eax]
push edx
add eax, 4
mov word [esp + 0x6c], cx
push 0
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0x288], 0x12
call fcn.00413e90
push 1
lea ecx, [esp + 0x168]
mov byte [esp + 0x280], 3
call fcn.00414090
lea ecx, [esp + 0x68]
call fcn.004c48d0
cmp ax, 2
je 0x49ef99
lea ecx, [esp + 0x68]
call fcn.004c48d0
cmp ax, 1
jne 0x49ecb5
lea eax, [esp + 0x8c]
lea ecx, [esp + 0x68]
push eax
call fcn.004ca4a0
mov edi, dword [eax + 4]
test edi, edi
jne 0x49ee76
mov edi, 0x4f7480
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x174]
mov eax, ecx
mov esi, edi
mov edi, edx
push 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x90]
call fcn.00414090
mov ebx, dword [esp + 0x44]
xor ebp, ebp
push ebp
lea esi, [ebx + 0x74]
mov ecx, esi
call fcn.004be4c0
and eax, 0xff
lea edi, [esp + 0x174]
or ecx, 0xffffffff
lea edx, [eax + eax - 6]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, edx
je 0x49ef1f
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x28c], 0x13
mov ecx, esp
mov dword [esp + 0x5c], esp
push 6
push 0x5128bc
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x28c], 3
call fcn.004caf10
jmp 0x49ecb5
push ecx
lea ecx, [esp + 0x178]
mov eax, esp
mov dword [esp + 0x58], esp
push ecx
push eax
mov ecx, ebx
call fcn.00491690
lea ecx, [esp + 0x18]
call fcn.004be4d0
lea ecx, [esp + 0x14]
call fcn.004be660
test ax, ax
jne 0x49efef
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x28c], 0x14
mov ecx, esp
mov dword [esp + 0x5c], esp
push 6
push 0x5128bc
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x28c], 3
call fcn.004caf10
jmp 0x49ecb5
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x280], 2
call fcn.00414090
push 1
lea ecx, [esp + 0x30]
mov byte [esp + 0x280], 1
call fcn.00414090
lea ecx, [esp + 0x14]
mov byte [esp + 0x27c], 0
call fcn.004be2e0
push 1
lea ecx, [esp + 0x70]
mov dword [esp + 0x280], 0xffffffff
call fcn.00414090
mov ax, 1
jmp 0x49f9d5
push ebp
mov ecx, esi
xor edi, edi
call fcn.004be4c0
and eax, 0xff
sub eax, 3
test eax, eax
jle 0x49f030
push edi
lea ecx, [esp + 0x18]
call fcn.004be4c0
lea edx, [edi + 4]
push eax
push edx
mov ecx, esi
call fcn.004be5e0
push ebp
mov ecx, esi
inc edi
call fcn.004be4c0
and eax, 0xff
sub eax, 3
cmp edi, eax
jl 0x49f005
push ebp
push ebp
mov ecx, esi
call fcn.004be4c0
push eax
push ebp
mov ecx, ebx
call fcn.004a3290
push 1
lea ecx, [esp + 0x1c]
mov esi, eax
mov byte [esp + 0x280], 2
call fcn.00414090
jmp 0x49f97c
mov al, byte [esp + 0x12]
push ecx
test al, al
mov ecx, esp
jne 0x49f108
mov dword [esp + 0x58], esp
push 6
push 0x512ad0
call fcn.004be240
lea eax, [esp + 0xa4]
push eax
call fcn.004cfca0
add esp, 8
mov ecx, dword [0x4f73d0]
xor edi, edi
push ecx
push edi
push eax
lea ecx, [ebx + 0x64]
mov byte [esp + 0x288], 0x15
call fcn.00413e90
mov eax, dword [esp + 0xa4]
mov byte [esp + 0x27c], 3
cmp eax, edi
je 0x49f0ee
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f0e5
cmp al, 0xff
je 0x49f0e5
dec al
mov byte [ecx], al
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], edi
jmp 0x49f188
push ecx
call fcn.004de1a0
add esp, 4
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], edi
jmp 0x49f188
mov dword [esp + 0x58], esp
push 6
push 0x512ac8
call fcn.004be240
lea edx, [esp + 0xc4]
push edx
call fcn.004cfca0
add esp, 8
mov ecx, dword [0x4f73d0]
xor edi, edi
push ecx
push edi
push eax
lea ecx, [ebx + 0x64]
mov byte [esp + 0x288], 0x16
call fcn.00413e90
mov eax, dword [esp + 0xc4]
mov byte [esp + 0x27c], 3
cmp eax, edi
je 0x49f173
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f16a
cmp al, 0xff
je 0x49f16a
dec al
mov byte [ecx], al
jmp 0x49f173
push ecx
call fcn.004de1a0
add esp, 4
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], edi
push 6
push 0x512ad0
lea ecx, [esp + 0x8c]
mov byte [ebx + 0x41], 0
mov byte [ebx + 0x42], 1
call fcn.004be240
mov ecx, dword [ebx + 0x84]
lea esi, [ebx + 0x7c]
push eax
push 1
push ecx
mov ecx, esi
mov byte [esp + 0x288], 0x17
call fcn.004148e0
lea ecx, [esp + 0x84]
mov byte [esp + 0x27c], 3
call fcn.004be2e0
push 6
push 0x512ac8
lea ecx, [esp + 0x44]
call fcn.004be240
mov ecx, dword [esi + 8]
push eax
push 1
push ecx
mov ecx, esi
mov byte [esp + 0x288], 0x18
call fcn.004148e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x27c], 3
call fcn.004be2e0
mov ecx, ebx
call fcn.004a2cb0
mov esi, eax
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x49f238
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f22f
cmp al, 0xff
je 0x49f22f
dec al
mov byte [ecx], al
jmp 0x49f238
push ecx
call fcn.004de1a0
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], edi
cmp eax, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
je 0x49f269
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f260
cmp al, 0xff
je 0x49f260
dec al
mov byte [ecx], al
jmp 0x49f269
push ecx
call fcn.004de1a0
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov byte [esp + 0x27c], 0
call fcn.004be2e0
mov eax, dword [esp + 0x70]
cmp eax, edi
je 0x49f9d2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f9c9
cmp al, 0xff
je 0x49f9c9
dec al
mov byte [ecx], al
jmp 0x49f9d2
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push 6
push 0x512b08
call fcn.004be240
lea edx, [esp + 0xd4]
push edx
call fcn.004cfca0
add esp, 8
mov ecx, dword [0x4f73d0]
xor esi, esi
lea ebp, [ebx + 0x64]
push ecx
push esi
push eax
mov ecx, ebp
mov byte [esp + 0x288], 0x19
call fcn.00413e90
mov eax, dword [esp + 0xd4]
mov byte [esp + 0x27c], 3
cmp eax, esi
je 0x49f321
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f318
cmp al, 0xff
je 0x49f318
dec al
mov byte [ecx], al
jmp 0x49f321
push ecx
call fcn.004de1a0
add esp, 4
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
push edx
push eax
lea ecx, [esp + 0xe8]
push str._.0f
push ecx
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], esi
mov dword [esp + 0xec], esi
call fcn.004de8d6
lea edi, [esp + 0xf0]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
mov edx, dword [0x4f73d0]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [ebp + 8]
sub edx, ecx
cmp edx, esi
ja 0x49f37c
call fcn.004de1ab
xor edi, edi
cmp esi, edi
jbe 0x49f3ca
mov edx, dword [ebp + 8]
mov eax, esi
add eax, edx
push edi
push eax
mov ecx, ebp
mov dword [esp + 0x4c], eax
call fcn.004144a0
test al, al
je 0x49f3ca
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov ecx, esi
add edi, eax
mov eax, ecx
lea esi, [esp + 0xe0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x44]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 4]
mov dword [ebp + 8], eax
add eax, ecx
xor edi, edi
mov byte [eax], 0
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push 6
push 0x512b64
call fcn.004be240
lea ecx, [esp + 0xb4]
push ecx
call fcn.004cfca0
add esp, 8
mov edx, dword [0x4f73d0]
lea ecx, [esp + 0x2c]
push edx
push edi
push eax
mov byte [esp + 0x288], 0x1a
call fcn.00413e90
mov eax, dword [esp + 0xb4]
mov byte [esp + 0x27c], 3
cmp eax, edi
je 0x49f437
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f42e
cmp al, 0xff
je 0x49f42e
dec al
mov byte [ecx], al
jmp 0x49f437
push ecx
call fcn.004de1a0
add esp, 4
mov eax, dword [0x4f73d0]
mov edx, dword [ebp + 8]
sub eax, edx
mov dword [esp + 0xb4], edi
cmp eax, 1
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], edi
ja 0x49f460
call fcn.004de1ab
mov edi, dword [ebp + 8]
push 0
inc edi
mov ecx, ebp
push edi
call fcn.004144a0
test al, al
je 0x49f488
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
add eax, ecx
mov byte [eax], 0x20
mov eax, dword [ebp + 4]
mov dword [ebp + 8], edi
add edi, eax
mov byte [edi], 0
mov eax, dword [0x4f73d0]
mov ecx, dword [esp + 0x34]
mov esi, eax
cmp ecx, esi
jae 0x49f499
mov esi, ecx
sub eax, dword [ebp + 8]
cmp eax, esi
ja 0x49f4a5
call fcn.004de1ab
test esi, esi
jbe case.default.0x49e879
mov ecx, dword [ebp + 8]
mov eax, esi
add eax, ecx
push 0
push eax
mov ecx, ebp
mov dword [esp + 0x4c], eax
call fcn.004144a0
test al, al
je case.default.0x49e879
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x49f4cf
mov eax, 0x4f7480
mov edi, dword [ebp + 4]
mov ecx, dword [ebp + 8]
add edi, ecx
mov ecx, esi
mov edx, ecx
mov esi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x44]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.00414480
xor esi, esi
push esi
push 3
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x6c], esp
push ecx
mov ecx, esp
mov dword [esp + 0x68], esp
push 6
push 0x510e30
call fcn.004be240
push edi
call fcn.004cfca0
sub esp, 8
lea edx, [ebx + 0x64]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
mov byte [esp + 0x2a8], 0x1b
call fcn.00413ad0
mov ecx, 0x5200a8
mov byte [esp + 0x2a4], 3
call fcn.004cae60
cmp ax, 2
jne 0x49f5f4
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x49f577
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f56e
cmp al, 0xff
je 0x49f56e
dec al
mov byte [ecx], al
jmp 0x49f577
push ecx
call fcn.004de1a0
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
cmp eax, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
je 0x49f5a8
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f59f
cmp al, 0xff
je 0x49f59f
dec al
mov byte [ecx], al
jmp 0x49f5a8
push ecx
call fcn.004de1a0
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x27c], 0
call fcn.004be2e0
mov eax, dword [esp + 0x70]
cmp eax, esi
je 0x49f855
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f84c
cmp al, 0xff
je 0x49f84c
dec al
mov byte [ecx], al
mov ax, 1
jmp 0x49f9d5
push 0x3b9ac9ff
lea eax, [esp + 0x178]
push 0x50f930
push eax
call fcn.004de8d6
push ecx
mov cl, byte [esp + 0x23]
mov edx, esp
lea edi, [esp + 0x184]
xor eax, eax
mov dword [esp + 0x64], esp
mov byte [edx], cl
or ecx, 0xffffffff
mov dword [edx + 4], esi
mov dword [edx + 8], esi
mov dword [edx + 0xc], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x184]
push ecx
push eax
mov ecx, edx
call fcn.004142c0
sub esp, 0x10
lea edx, [esp + 0x33]
mov ecx, esp
mov dword [esp + 0x6c], esp
push edx
push 0x50f8e4
mov byte [esp + 0x2a4], 0x1c
call fcn.00413bf0
sub esp, 0x10
lea eax, [esp + 0x5b]
mov ecx, esp
mov dword [esp + 0xb8], esp
push eax
push 0x50f9a8
mov byte [esp + 0x2b4], 0x1d
call fcn.00413bf0
sub esp, 0x10
lea edx, [esp + 0x52]
mov ecx, esp
mov dword [esp + 0xbc], esp
push edx
push 0x520010
mov byte [esp + 0x2c4], 0x1e
call fcn.00413bf0
sub esp, 0x10
mov byte [esp + 0x2cc], 0x1f
mov edi, esp
mov dword [esp + 0x90], esp
push ecx
mov ecx, esp
mov dword [esp + 0x9c], esp
push 6
push 0x510e30
call fcn.004be240
push edi
call fcn.004cfca0
sub esp, 8
mov byte [esp + 0x2dc], 0x20
mov edi, esp
mov dword [esp + 0xa8], esp
push ecx
mov ecx, esp
mov dword [esp + 0xac], esp
push 6
push 0x512b08
call fcn.004be240
push edi
call fcn.004cfca0
add esp, 8
lea eax, [esp + 0xec]
mov byte [esp + 0x2dc], 3
push eax
mov ecx, 0x5200a8
call fcn.004cb120
mov edx, dword [0x4f73d0]
mov cx, word [eax]
push edx
add eax, 4
mov word [esp + 0x6c], cx
push esi
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0x288], 0x21
call fcn.00413e90
mov eax, dword [esp + 0x94]
mov byte [esp + 0x27c], 3
cmp eax, esi
je 0x49f77a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f771
cmp al, 0xff
je 0x49f771
dec al
mov byte [ecx], al
jmp 0x49f77a
push ecx
call fcn.004de1a0
add esp, 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], esi
call fcn.004c48d0
cmp ax, 2
je 0x49f7b6
lea ecx, [esp + 0x68]
call fcn.004c48d0
cmp ax, 1
je 0x49f85e
jmp 0x49f5f4
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x49f7db
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f7d2
cmp al, 0xff
je 0x49f7d2
dec al
mov byte [ecx], al
jmp 0x49f7db
push ecx
call fcn.004de1a0
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
cmp eax, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
je 0x49f80c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f803
cmp al, 0xff
je 0x49f803
dec al
mov byte [ecx], al
jmp 0x49f80c
push ecx
call fcn.004de1a0
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x27c], 0
call fcn.004be2e0
mov eax, dword [esp + 0x70]
cmp eax, esi
je 0x49f855
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f84c
cmp al, 0xff
je 0x49f84c
dec al
mov byte [ecx], al
mov ax, 1
jmp 0x49f9d5
push ecx
call fcn.004de1a0
add esp, 4
mov ax, 1
jmp 0x49f9d5
lea eax, [esp + 0x54]
lea ecx, [esp + 0x68]
push eax
call fcn.004ca4a0
mov edi, dword [eax + 4]
cmp edi, esi
jne 0x49f878
mov edi, 0x4f7480
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x174]
mov eax, ecx
mov esi, edi
mov edi, edx
xor ebp, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x58]
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x49f8c3
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f8ba
cmp al, 0xff
je 0x49f8ba
dec al
mov byte [ecx], al
jmp 0x49f8c3
push ecx
call fcn.004de1a0
add esp, 4
lea ecx, [esp + 0x174]
push ecx
call fcn.004dea48
mov ecx, eax
add esp, 4
mov edx, eax
mov byte [esp + 0x54], al
sar ecx, 0x10
lea esi, [ebx + 0x74]
mov byte [esp + 0x56], cl
sar edx, 8
shr eax, 0x18
push ebp
mov ecx, esi
mov byte [esp + 0x59], dl
mov byte [esp + 0x5b], al
xor edi, edi
call fcn.004be4c0
and eax, 0xff
sub eax, 4
js 0x49f937
mov dl, byte [esp + edi + 0x54]
mov ecx, esi
push edx
push ebp
call fcn.004be4c0
movzx ax, al
sub eax, edi
mov ecx, esi
push eax
call fcn.004be5e0
push ebp
mov ecx, esi
inc edi
call fcn.004be4c0
and eax, 0xff
sub eax, 4
cmp edi, eax
jle 0x49f907
push ebp
push ebp
mov ecx, esi
call fcn.004be4c0
push eax
push ebp
mov ecx, ebx
call fcn.004a3290
mov esi, eax
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x49f970
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f967
cmp al, 0xff
je 0x49f967
dec al
mov byte [ecx], al
jmp 0x49f970
push ecx
call fcn.004de1a0
add esp, 4
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x30]
cmp eax, ebp
je 0x49f9a1
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49f998
cmp al, 0xff
je 0x49f998
dec al
mov byte [ecx], al
jmp 0x49f9a1
push ecx
call fcn.004de1a0
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov byte [esp + 0x27c], 0
call fcn.004be2e0
mov eax, dword [esp + 0x70]
cmp eax, ebp
jmp 0x49f28c
push ecx
call fcn.004de1a0
add esp, 4
mov ax, si
mov ecx, dword [esp + 0x274]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x270
ret