Function at 0x47f578
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffed8
xor eax, eax
xor edx, edx
xor ecx, ecx
push ebx
push esi
push edi
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], ecx
xor eax, eax
mov dword [ebp - 0x38], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
xor edx, edx
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], edx
mov ecx, dword [ebp + 0x14]
xor edx, edx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x58], ecx
mov ecx, 0xfffffffe
test byte [ebp - 0x3b], 2
setne al
and eax, 1
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
xor edx, 1
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
test byte [ebp - 0x3c], 1
je 0x47f5f5
mov eax, pe_nt_image_headers32
jmp 0x47f5f7
xor eax, eax
mov dword [ebp - 0x2c], eax
xor ebx, ebx
mov edx, dword [ebp - 0x4c]
cmp dword [ebp - 0x44], 0
mov bl, byte [edx]
je 0x47f60f
test ebx, ebx
jne 0x480e23
test byte [ebp - 0x3c], 8
je 0x47f645
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 1
jne 0x480f89
cmp ebx, 0x23
jne 0x47f645
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x47f63d
cmp ebx, 0xa
jne 0x47f62a
test ebx, ebx
jne 0x480f89
mov eax, ebx
cmp eax, 0x2e
jg 0x47f68a
je 0x47f716
cmp eax, 0x29
jg 0x47f675
je 0x47f6c0
sub eax, 1
jb 0x47f6c0
sub eax, 0x23
je 0x47f708
sub eax, 4
je 0x480438
jmp 0x480e23
sub eax, 0x2a
je 0x47fdbd
dec eax
je 0x47fdcb
jmp 0x480e23
cmp eax, 0x5e
jg 0x47f6af
je 0x47f6e7
sub eax, 0x3f
je 0x47fddb
sub eax, 0x1c
je 0x47f73b
dec eax
je 0x480d33
jmp 0x480e23
sub eax, 0x7b
je 0x47fd80
dec eax
je 0x47f6c0
jmp 0x480e23
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x1c]
mov dword [edx], ecx
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], esi
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x4c]
mov dword [eax], edx
mov eax, 1
jmp 0x480f9b
test byte [ebp - 0x3c], 2
je 0x47f6fa
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x47f6fa
mov dword [ebp - 0x1c], 0xffffffff
xor edx, edx
mov dword [ebp - 0x54], edx
mov byte [esi], 0x10
inc esi
jmp 0x480f89
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov byte [esi], 0x11
inc esi
jmp 0x480f89
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x47f723
mov dword [ebp - 0x1c], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x54], esi
mov byte [esi], 0xb
inc esi
jmp 0x480f89
mov dword [ebp - 0x54], esi
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 1], 0x3a
je 0x47f759
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x2e
je 0x47f759
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 1], 0x3d
jne 0x47f790
mov ecx, dword [ebp + 0x28]
lea eax, [ebp - 0x50]
push ecx
push eax
mov edx, dword [ebp - 0x4c]
push edx
call fcn.0047f484
add esp, 0xc
test eax, eax
je 0x47f790
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 1], 0x3a
jne 0x47f781
mov eax, 0x4c0056
jmp 0x47f786
mov eax, 0x4c008c
mov edx, dword [ebp + 0x18]
mov dword [edx], eax
jmp 0x480f91
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [ecx]
cmp ebx, 0x5e
jne 0x47f7b2
mov dword [ebp - 0x5c], 1
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [eax]
jmp 0x47f7b7
xor eax, eax
mov dword [ebp - 0x5c], eax
xor edx, edx
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x68], 0xffffffff
push 0x20
push 0
push ecx
call fcn.0047dfcc
add esp, 0xc
cmp dword [ebp - 0x44], 0
je 0x47f7ff
cmp ebx, 0x5c
jne 0x47fc4c
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x45
jne 0x47fc4c
xor edx, edx
mov dword [ebp - 0x44], edx
inc dword [ebp - 0x4c]
jmp 0x47fc9d
cmp ebx, 0x5b
jne 0x47f9ba
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 1], 0x3a
je 0x47f827
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x2e
je 0x47f827
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 1], 0x3d
jne 0x47f9ba
mov ecx, dword [ebp + 0x28]
lea eax, [ebp - 0x50]
push ecx
push eax
mov edx, dword [ebp - 0x4c]
push edx
call fcn.0047f484
add esp, 0xc
test eax, eax
je 0x47f9ba
xor ecx, ecx
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 8]
mov dword [ebp - 0x8c], edx
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 1], 0x3a
je 0x47f86b
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4c00b7
jmp 0x480f91
add dword [ebp - 0x4c], 2
mov edx, dword [ebp - 0x4c]
cmp byte [edx], 0x5e
jne 0x47f881
mov dword [ebp - 0x80], 1
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
sub ecx, dword [ebp - 0x4c]
push ecx
mov eax, dword [ebp - 0x4c]
push eax
call fcn.0047f4cc
add esp, 8
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jge 0x47f8b1
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x4c00e2
jmp 0x480f91
test byte [ebp - 0x3c], 1
je 0x47f8c8
cmp dword [ebp - 0x84], 2
jg 0x47f8c8
xor ecx, ecx
mov dword [ebp - 0x84], ecx
mov eax, dword [ebp - 0x84]
xor edx, edx
lea eax, [eax + eax*2]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x88], edx
push 5
push 0x4c00fb
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.0047e1d8
add esp, 0xc
test eax, eax
sete al
and eax, 1
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x88]
mov ecx, dword [edx*4 + 0x4bf918]
mov dword [ebp - 0x94], ecx
cmp dword [ebp - 0x94], 0
jl 0x47f9a7
cmp dword [ebp - 0x80], 0
je 0x47f962
xor ebx, ebx
lea edx, [ebp - 0x128]
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x94]
add eax, ecx
mov cl, byte [eax]
not cl
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x47f942
cmp dword [ebp - 0x90], 0
je 0x47f994
or byte [ebp - 0x127], 0x3c
jmp 0x47f994
xor ebx, ebx
lea eax, [ebp - 0x128]
mov edx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x94]
add edx, ecx
mov cl, byte [edx]
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x47f978
cmp dword [ebp - 0x90], 0
je 0x47f994
and byte [ebp - 0x127], 0xc3
inc dword [ebp - 0x88]
cmp dword [ebp - 0x88], 3
jl 0x47f8df
mov eax, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x64], 0xa
jmp 0x47fc9d
cmp ebx, 0x5c
jne 0x47fb61
push 1
mov eax, dword [ebp - 0x3c]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx]
push ecx
mov eax, dword [ebp + 0x18]
push eax
lea edx, [ebp - 0x4c]
push edx
call fcn.0047ecf0
add esp, 0x14
mov ebx, eax
mov eax, ebx
neg eax
cmp eax, 4
jne 0x47f9ef
mov ebx, 8
mov eax, ebx
neg eax
cmp eax, 0x10
jne 0x47fa1f
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 1], 0x5c
jne 0x47fa13
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 2], 0x45
jne 0x47fa13
add dword [ebp - 0x4c], 2
jmp 0x47fc9d
mov dword [ebp - 0x44], 1
jmp 0x47fc9d
test ebx, ebx
jge 0x47fb61
mov eax, dword [ebp + 0x28]
neg ebx
mov edx, dword [eax + 8]
add ebx, 0xfffffffb
mov dword [ebp - 0x98], edx
cmp ebx, 5
mov dword [ebp - 0x64], 0xa
ja case.default.0x47fa48
jmp dword [ebx*4 + 0x47fa4f]
xor ebx, ebx
mov eax, dword [ebp - 0x98]
add eax, 0x40
lea edx, [ebp - 0x128]
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x47fa78
jmp 0x47fc9d
xor ebx, ebx
mov edx, dword [ebp - 0x98]
add edx, 0x40
lea eax, [ebp - 0x128]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x47fa9a
jmp 0x47fc9d
xor ebx, ebx
mov eax, dword [ebp - 0x98]
add eax, 0xa0
lea edx, [ebp - 0x128]
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x47fac0
jmp 0x47fc9d
xor ebx, ebx
mov edx, dword [ebp - 0x98]
add edx, 0xa0
lea eax, [ebp - 0x128]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x47fae5
jmp 0x47fc9d
xor ebx, ebx
lea edx, [ebp - 0x128]
mov eax, dword [ebp - 0x98]
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x47fb06
and byte [ebp - 0x127], 0xf7
jmp 0x47fc9d
xor ebx, ebx
lea eax, [ebp - 0x128]
mov edx, dword [ebp - 0x98]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x47fb2c
or byte [ebp - 0x127], 8
jmp 0x47fc9d
test byte [ebp - 0x3c], 0x40
je 0x47fb5a
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4c0101
jmp 0x480f91
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [eax]
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x2d
jne 0x47fc4c
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 2], 0x5d
je 0x47fc4c
add dword [ebp - 0x4c], 2
mov ecx, dword [ebp - 0x4c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x47fbce
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x9c], edx
push 1
mov ecx, dword [ebp - 0x3c]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
lea eax, [ebp - 0x4c]
push eax
call fcn.0047ecf0
add esp, 0x14
test eax, eax
jge 0x47fbce
cmp eax, 0xfffffffc
jne 0x47fbc0
mov eax, 8
jmp 0x47fbce
mov edx, dword [ebp - 0x9c]
add edx, 0xfffffffe
mov dword [ebp - 0x4c], edx
jmp 0x47fc4c
cmp ebx, eax
jle 0x47fbe0
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x4c012c
jmp 0x480f91
cmp eax, ebx
jl 0x47fc9d
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, ebx
test ecx, ecx
jns 0x47fbfa
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x128], dl
test byte [ebp - 0x3c], 1
je 0x47fc3f
mov edx, dword [ebp + 0x28]
mov edx, dword [edx + 4]
xor ecx, ecx
mov cl, byte [edx + ebx]
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebp - 0xa0]
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
jns 0x47fc35
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x128], dl
inc dword [ebp - 0x64]
mov dword [ebp - 0x68], ebx
inc ebx
cmp eax, ebx
jge 0x47fbe8
jmp 0x47fc9d
mov ecx, ebx
mov al, 1
and ecx, 7
mov edx, ebx
shl al, cl
test edx, edx
jns 0x47fc5e
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x128], al
test byte [ebp - 0x3c], 1
je 0x47fc97
mov eax, dword [ebp + 0x28]
xor ecx, ecx
mov edx, dword [eax + 4]
mov al, 1
mov cl, byte [edx + ebx]
mov ebx, ecx
mov ecx, ebx
mov edx, ebx
and ecx, 7
shl al, cl
test edx, edx
jns 0x47fc8d
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x128], al
inc dword [ebp - 0x64]
mov dword [ebp - 0x68], ebx
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [eax]
cmp ebx, 0x5d
jne 0x47f7d6
cmp dword [ebp - 0x44], 0
jne 0x47f7d6
cmp dword [ebp - 0x64], 1
jne 0x47fd25
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x5c], 0
je 0x47fce5
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x47fcd9
mov dword [ebp - 0x1c], 0xffffffff
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov byte [esi], 0x13
inc esi
jmp 0x47fd1a
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x47fcfd
mov dword [ebp - 0x28], 0xffffffff
mov ecx, dword [ebp - 0x68]
or ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], ecx
jmp 0x47fd12
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp + 0x28]
or edx, dword [ebp - 0x2c]
or edx, dword [ecx + 0x28]
mov dword [ebp - 0x20], edx
mov byte [esi], 0x12
inc esi
mov byte [esi], 1
inc esi
mov al, byte [ebp - 0x68]
mov byte [esi], al
inc esi
jmp 0x480f89
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x47fd32
mov dword [ebp - 0x1c], 0xffffffff
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x5c], 0
je 0x47fd62
mov byte [esi], 0x38
inc esi
xor ebx, ebx
mov edx, esi
lea eax, [ebp - 0x128]
mov cl, byte [eax]
not cl
mov byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x47fd52
jmp 0x47fd78
mov byte [esi], 0x37
inc esi
push 0x20
lea eax, [ebp - 0x128]
push eax
push esi
call fcn.0047dfe8
add esp, 0xc
add esi, 0x20
jmp 0x480f89
mov edx, dword [ebp - 0x4c]
inc edx
push edx
call fcn.0047eeac
pop ecx
test eax, eax
je 0x480e23
mov ecx, dword [ebp + 0x18]
push ecx
lea eax, [ebp - 0xc]
push eax
lea edx, [ebp - 8]
push edx
mov ecx, dword [ebp - 0x4c]
inc ecx
push ecx
call fcn.0047ef24
add esp, 0x10
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
jne 0x480f91
jmp 0x47fde7
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], 0xffffffff
jmp 0x47fde7
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], 0xffffffff
jmp 0x47fde7
xor ecx, ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0x54], 0
jne 0x47fdfb
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4c0152
jmp 0x480f91
cmp dword [ebp - 8], 0
jne 0x47fe0d
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0xc]
jne 0x47fe19
xor edx, edx
jmp 0x47fe1e
mov edx, 0x200
mov dword [ebp - 0x30], edx
xor eax, eax
mov dword [ebp - 4], eax
xor ecx, ecx
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x40], eax
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 1], 0x2b
jne 0x47fe48
xor edi, edi
mov dword [ebp - 0x60], 1
inc dword [ebp - 0x4c]
jmp 0x47fe5c
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x3f
jne 0x47fe59
mov edi, dword [ebp - 0x18]
inc dword [ebp - 0x4c]
jmp 0x47fe5c
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x3b
jne 0x47feb8
push 3
mov edx, dword [ebp - 0x54]
push edx
mov ecx, dword [ebp - 0x54]
add ecx, 3
push ecx
call fcn.0047e004
mov eax, dword [ebp - 0x54]
add esi, 3
mov edx, esi
add esp, 0xc
mov byte [eax], 0x4c
mov eax, esi
sub edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
sar edx, 8
mov byte [ecx + 1], dl
mov ecx, esi
sub eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
and al, 0xff
mov byte [edx + 2], al
mov byte [esi], 0x3e
sub ecx, dword [ebp - 0x54]
mov eax, esi
sar ecx, 8
mov byte [esi + 1], cl
sub eax, dword [ebp - 0x54]
and al, 0xff
mov byte [esi + 2], al
add esi, 3
mov edx, dword [ebp - 0x54]
cmp byte [edx], 0x12
jne 0x47fef3
dec esi
mov eax, dword [ebp - 0x54]
add eax, 2
xor ebx, ebx
mov bl, byte [esi]
cmp esi, eax
jne 0x47fee8
cmp dword [ebp - 8], 1
mov esi, dword [ebp - 0x54]
jle 0x47ff2c
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp - 0x2c]
or eax, ebx
or eax, dword [edx + 0x28]
mov dword [ebp - 0x20], eax
jmp 0x47ff2c
mov ecx, dword [ebp - 0x54]
dec byte [ecx + 1]
mov dword [ebp - 0x40], esi
jmp 0x47ff2c
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x13
jne 0x47ff0f
mov dword [ebp - 4], 9
mov edx, dword [ebp - 0x54]
xor ebx, ebx
mov bl, byte [edx + 1]
mov esi, dword [ebp - 0x54]
jmp 0x47ff2c
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0xd
jae 0x48002b
mov dword [ebp - 4], 0x12
mov edx, dword [ebp - 0x54]
xor ebx, ebx
mov bl, byte [edx]
mov esi, dword [ebp - 0x54]
cmp dword [ebp - 0xc], 0
je 0x480425
add edi, dword [ebp - 4]
cmp dword [ebp - 8], 0
jne 0x47ff85
cmp dword [ebp - 0xc], 0xffffffff
jne 0x47ff51
mov eax, edi
add al, 0x14
mov byte [esi], al
inc esi
jmp 0x480023
cmp dword [ebp - 0xc], 1
jne 0x47ff64
mov edx, edi
add dl, 0x18
mov byte [esi], dl
inc esi
jmp 0x480023
mov ecx, edi
add cl, 0x1a
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0xc]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xc]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
jmp 0x480023
cmp dword [ebp - 8], 1
jne 0x47ff9e
cmp dword [ebp - 0xc], 0xffffffff
jne 0x47ff9e
mov ecx, edi
add cl, 0x16
mov byte [esi], cl
inc esi
jmp 0x480023
cmp dword [ebp - 8], 1
je 0x47ffc2
mov al, byte [ebp - 4]
add al, 0x1c
mov byte [esi], al
inc esi
mov edx, dword [ebp - 8]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 8]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
jmp 0x47ffe5
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x12
jne 0x47ffdc
cmp esi, dword [ebp - 0x54]
jne 0x47ffd4
add esi, 2
jmp 0x47ffe5
mov edx, dword [ebp - 0x54]
inc byte [edx + 1]
jmp 0x47ffe5
mov ecx, dword [ebp - 0x54]
cmp byte [ecx], 0x13
jne 0x47ffe5
inc esi
cmp dword [ebp - 0xc], 0
jge 0x47fff7
mov byte [esi], bl
inc esi
mov eax, edi
add al, 0x14
mov byte [esi], al
inc esi
jmp 0x480023
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 8]
je 0x480023
mov byte [esi], bl
inc esi
mov ecx, dword [ebp - 8]
mov eax, edi
sub dword [ebp - 0xc], ecx
add al, 0x1a
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0xc]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0xc]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov byte [esi], bl
inc esi
jmp 0x4803ae
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x37
je 0x480047
mov edx, dword [ebp - 0x54]
cmp byte [edx], 0x38
je 0x480047
mov ecx, dword [ebp - 0x54]
cmp byte [ecx], 0x3a
jne 0x4800de
cmp dword [ebp - 0xc], 0
jne 0x480055
mov esi, dword [ebp - 0x54]
jmp 0x480425
cmp dword [ebp - 8], 0
jne 0x48006d
cmp dword [ebp - 0xc], 0xffffffff
jne 0x48006d
mov eax, edi
add al, 0x2f
mov byte [esi], al
inc esi
jmp 0x4803ae
cmp dword [ebp - 8], 1
jne 0x480086
cmp dword [ebp - 0xc], 0xffffffff
jne 0x480086
mov edx, edi
add dl, 0x31
mov byte [esi], dl
inc esi
jmp 0x4803ae
cmp dword [ebp - 8], 0
jne 0x48009f
cmp dword [ebp - 0xc], 1
jne 0x48009f
mov ecx, edi
add cl, 0x33
mov byte [esi], cl
inc esi
jmp 0x4803ae
mov eax, edi
add al, 0x35
mov byte [esi], al
inc esi
mov edx, dword [ebp - 8]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 8]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4800c5
xor eax, eax
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0xc]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
jmp 0x4803ae
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x4c
jae 0x4800fa
mov edx, dword [ebp - 0x54]
cmp byte [edx], 0x46
je 0x4800fa
mov ecx, dword [ebp - 0x54]
cmp byte [ecx], 0x47
jne 0x4803a0
xor eax, eax
mov dword [ebp - 0xa8], eax
mov edx, esi
sub edx, dword [ebp - 0x54]
mov dword [ebp - 0xac], edx
xor ebx, ebx
cmp dword [ebp - 0xc], 0xffffffff
jne 0x480158
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xb0]
xor ecx, ecx
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
or ecx, edx
add dword [ebp - 0xb0], ecx
mov ecx, dword [ebp - 0xb0]
cmp byte [ecx], 0x3e
jne 0x48011e
mov eax, esi
sub eax, dword [ebp - 0xb0]
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 8], 0
jne 0x480241
cmp dword [ebp - 0xc], 0
jne 0x480170
mov esi, dword [ebp - 0x54]
jmp 0x480425
cmp dword [ebp - 0xc], 1
jg 0x4801b9
mov byte [esi], 0
mov eax, dword [ebp + 0x28]
push eax
mov edx, dword [ebp - 0x58]
push edx
push 1
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.0047f520
add esp, 0x10
mov eax, dword [ebp - 0xac]
push eax
mov edx, dword [ebp - 0x54]
push edx
mov ecx, dword [ebp - 0x54]
inc ecx
push ecx
call fcn.0047e004
mov edx, dword [ebp - 0x54]
mov eax, edi
add al, 0x49
add esp, 0xc
mov byte [edx], al
inc esi
inc dword [ebp - 0x54]
jmp 0x48023c
mov byte [esi], 0
mov ecx, dword [ebp + 0x28]
push ecx
mov eax, dword [ebp - 0x58]
push eax
push 4
mov edx, dword [ebp - 0x54]
push edx
call fcn.0047f520
add esp, 0x10
mov ecx, dword [ebp - 0xac]
push ecx
mov eax, dword [ebp - 0x54]
push eax
mov edx, dword [ebp - 0x54]
add edx, 4
push edx
call fcn.0047e004
mov eax, dword [ebp - 0x54]
mov ecx, edi
add cl, 0x49
add esp, 0xc
mov byte [eax], cl
add esi, 4
inc dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x4c
inc dword [ebp - 0x54]
test ebx, ebx
jne 0x48020d
xor ecx, ecx
jmp 0x480212
mov ecx, dword [ebp - 0x54]
sub ecx, ebx
mov dword [ebp - 0xb4], ecx
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x54]
sar eax, 8
mov ebx, dword [ebp - 0x54]
mov byte [edx], al
mov eax, dword [ebp - 0x54]
mov cl, byte [ebp - 0xb4]
and cl, 0xff
mov byte [eax + 1], cl
add dword [ebp - 0x54], 2
dec dword [ebp - 0xc]
jmp 0x4802a5
cmp dword [ebp - 8], 1
jle 0x480299
cmp dword [ebp - 0x48], 0
je 0x480259
cmp dword [ebp - 0x20], 0
jge 0x480259
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0xa4], 1
mov ecx, dword [ebp - 0xa4]
cmp ecx, dword [ebp - 8]
jge 0x480299
mov eax, dword [ebp - 0xac]
push eax
mov edx, dword [ebp - 0x54]
push edx
push esi
call fcn.0047dfe8
add esi, dword [ebp - 0xac]
inc dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa4]
add esp, 0xc
cmp ecx, dword [ebp - 8]
jl 0x48026e
cmp dword [ebp - 0xc], 0
jle 0x4802a5
mov eax, dword [ebp - 8]
sub dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x48038f
mov edx, dword [ebp - 0xc]
dec edx
mov dword [ebp - 0xa4], edx
cmp dword [ebp - 0xa4], 0
jl 0x48032e
mov ecx, edi
add cl, 0x49
mov byte [esi], cl
inc esi
cmp dword [ebp - 0xa4], 0
je 0x480305
mov byte [esi], 0x4c
inc esi
test ebx, ebx
jne 0x4802df
xor eax, eax
jmp 0x4802e3
mov eax, esi
sub eax, ebx
mov dword [ebp - 0xb8], eax
mov ebx, esi
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0xac]
push ecx
mov eax, dword [ebp - 0x54]
push eax
push esi
call fcn.0047dfe8
add esi, dword [ebp - 0xac]
dec dword [ebp - 0xa4]
add esp, 0xc
cmp dword [ebp - 0xa4], 0
jge 0x4802c2
test ebx, ebx
je 0x4803ae
mov eax, esi
sub eax, ebx
inc eax
mov edx, esi
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
movzx edi, byte [edx + 2]
or ecx, edi
mov dword [ebp - 0xbc], ecx
cmp dword [ebp - 0xbc], 0
jne 0x48035c
xor ecx, ecx
jmp 0x480364
mov ecx, ebx
sub ecx, dword [ebp - 0xbc]
mov ebx, ecx
mov byte [esi], 0x3e
inc esi
mov ecx, eax
sar ecx, 8
mov byte [esi], cl
mov ecx, eax
and cl, 0xff
mov byte [esi + 1], cl
mov ecx, eax
sar ecx, 8
add esi, 2
and al, 0xff
mov byte [edx + 1], cl
mov byte [edx + 2], al
test ebx, ebx
jne 0x480332
jmp 0x4803ae
mov eax, edi
add al, 0x3f
mov edx, dword [ebp - 0xa8]
neg edx
mov byte [esi + edx], al
jmp 0x4803ae
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4c0164
jmp 0x480f91
cmp dword [ebp - 0x60], 0
je 0x480425
mov edx, esi
sub edx, dword [ebp - 0x40]
mov dword [ebp - 0xc0], edx
mov ecx, dword [ebp - 0xc0]
push ecx
mov eax, dword [ebp - 0x40]
push eax
mov edx, dword [ebp - 0x40]
add edx, 3
push edx
call fcn.0047e004
add dword [ebp - 0xc0], 3
mov ecx, dword [ebp - 0x40]
add esi, 3
add esp, 0xc
mov byte [ecx], 0x46
mov byte [esi], 0x3e
inc esi
mov eax, dword [ebp - 0xc0]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xc0]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x40]
sar ecx, 8
mov byte [eax + 1], cl
mov ecx, dword [ebp - 0x40]
mov dl, byte [ebp - 0xc0]
and dl, 0xff
mov byte [ecx + 2], dl
xor eax, eax
mov dword [ebp - 0x54], eax
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x30]
or dword [edx + 0x28], ecx
jmp 0x480f89
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x74], edx
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx], 0x3f
jne 0x480b69
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor edx, edx
mov dl, byte [eax]
add edx, 0xffffffdf
cmp edx, 0x31
ja case.0x48046e.33
mov dl, byte [edx + 0x480475]
jmp dword [edx*4 + 0x4804a7]
inc dword [ebp - 0x4c]
jmp 0x4804df
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx], 0x29
jne 0x4804dc
jmp 0x480f89
mov dword [ebp - 0x10], 0x4c
inc dword [ebp - 0x4c]
jmp 0x480bbb
mov dword [ebp - 0x10], 0x47
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x52
jne 0x480527
mov byte [esi + 3], 0x48
mov byte [esi + 4], 0xff
mov byte [esi + 5], 0xff
mov dword [ebp - 0x74], 3
add dword [ebp - 0x4c], 3
jmp 0x480bbb
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp byte [ecx + 0x4bf9c0], 0
jne 0x48053c
xor eax, eax
jmp 0x480541
mov eax, 1
test eax, eax
je 0x480bbb
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
mov cl, byte [edx]
sub ecx, 0x30
mov dword [ebp - 0xd0], ecx
jmp 0x48057b
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x4c]
add eax, eax
xor ecx, ecx
mov cl, byte [edx]
lea eax, [eax + eax*4]
add eax, ecx
sub eax, 0x30
mov dword [ebp - 0xd0], eax
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x29
jne 0x48055e
cmp dword [ebp - 0xd0], 0
jne 0x48059d
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x4c0186
jmp 0x480f91
inc dword [ebp - 0x4c]
mov byte [esi + 3], 0x48
mov ecx, dword [ebp - 0xd0]
sar ecx, 8
mov byte [esi + 4], cl
mov al, byte [ebp - 0xd0]
and al, 0xff
mov byte [esi + 5], al
mov dword [ebp - 0x74], 3
jmp 0x480bbb
mov dword [ebp - 0x10], 0x41
inc dword [ebp - 0x4c]
jmp 0x480bbb
mov dword [ebp - 0x10], 0x42
inc dword [ebp - 0x4c]
jmp 0x480bbb
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
mov cl, byte [edx]
sub cl, 0x21
je 0x48060a
sub cl, 0x1c
jne 0x480bbb
mov dword [ebp - 0x10], 0x43
inc dword [ebp - 0x4c]
jmp 0x480bbb
mov dword [ebp - 0x10], 0x44
inc dword [ebp - 0x4c]
jmp 0x480bbb
mov dword [ebp - 0x10], 0x46
inc dword [ebp - 0x4c]
jmp 0x480bbb
mov byte [esi], 0x3c
inc esi
xor eax, eax
mov dword [ebp - 0xd4], eax
jmp 0x480653
mov edx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x4c]
add edx, edx
xor eax, eax
mov al, byte [ecx]
lea edx, [edx + edx*4]
add edx, eax
sub edx, 0x30
mov dword [ebp - 0xd4], edx
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x4bf9c0], 4
jne 0x480636
cmp dword [ebp - 0xd4], 0xff
jle 0x480680
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4c019e
jmp 0x480f91
mov dl, byte [ebp - 0xd4]
mov byte [esi], dl
inc esi
xor ecx, ecx
mov dword [ebp - 0x54], ecx
jmp 0x480f89
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x3c
jne 0x4807f9
mov edx, dword [ebp + 0x28]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0xe0], ecx
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xe4], eax
mov edx, dword [ebp - 0x4c]
inc dword [ebp - 0x4c]
cmp byte [edx], 0x3e
jne 0x4806ba
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [ebp - 0xe4]
dec ecx
mov dword [ebp - 0xdc], ecx
xor eax, eax
mov dword [ebp - 0xd8], eax
jmp 0x480789
mov edx, dword [ebp - 0xdc]
push edx
mov ecx, dword [ebp - 0xe0]
add ecx, 2
push ecx
mov eax, dword [ebp - 0xe4]
push eax
call fcn.0047e020
add esp, 0xc
mov dword [ebp - 0xe8], eax
cmp dword [ebp - 0xe8], 0
jne 0x48073c
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xdc]
cmp byte [edx + ecx + 2], 0
jne 0x480732
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4c01b8
jmp 0x480f91
mov dword [ebp - 0xe8], 0xffffffff
cmp dword [ebp - 0xe8], 0
jge 0x480777
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
mov ecx, dword [edx + 0x18]
sub ecx, dword [ebp - 0xd8]
imul ecx, dword [eax + 0x1c]
push ecx
mov edx, dword [ebp - 0xe0]
push edx
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0x1c]
add eax, dword [ebp - 0xe0]
push eax
call fcn.0047e004
add esp, 0xc
jmp 0x48079b
mov edx, dword [ebp + 0x28]
mov ecx, dword [edx + 0x1c]
add dword [ebp - 0xe0], ecx
inc dword [ebp - 0xd8]
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0x18]
cmp edx, dword [ebp - 0xd8]
jg 0x4806e2
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0xe0]
mov eax, dword [ecx]
inc eax
sar eax, 8
mov byte [edx], al
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0xe0]
mov al, byte [ecx]
inc eax
and al, 0xff
mov byte [edx + 1], al
mov ecx, dword [ebp - 0xdc]
push ecx
mov eax, dword [ebp - 0xe4]
push eax
mov edx, dword [ebp - 0xe0]
add edx, 2
push edx
call fcn.0047dfe8
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xdc]
add esp, 0xc
mov byte [ecx + eax + 2], 0
mov edx, dword [ebp + 0x28]
inc dword [edx + 0x18]
jmp 0x480b78
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx], 0x3d
je 0x48080d
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x3e
jne 0x480bbb
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0xf4], ecx
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp + 0x28]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0xfc], ecx
jmp 0x480837
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x29
jne 0x480834
mov edx, dword [ebp - 0x4c]
sub edx, dword [ebp - 0xf8]
mov dword [ebp - 0xf0], edx
xor ecx, ecx
mov dword [ebp - 0xec], ecx
jmp 0x48088e
mov eax, dword [ebp - 0xf0]
push eax
mov edx, dword [ebp - 0xfc]
add edx, 2
push edx
mov ecx, dword [ebp - 0xf8]
push ecx
call fcn.0047e1d8
add esp, 0xc
test eax, eax
je 0x48089c
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0x1c]
add dword [ebp - 0xfc], edx
inc dword [ebp - 0xec]
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0x18]
cmp eax, dword [ebp - 0xec]
jg 0x480858
mov edx, dword [ebp + 0x28]
mov ecx, dword [edx + 0x18]
cmp ecx, dword [ebp - 0xec]
jg 0x4808b8
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4c01dc
jmp 0x480f91
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xfc]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 1]
or ecx, edx
mov dword [ebp - 0x70], ecx
cmp dword [ebp - 0xf4], 0x3e
je 0x48096f
mov dword [ebp - 0x54], esi
mov byte [esi], 0x3a
inc esi
mov ecx, dword [ebp - 0x70]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x70]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
cmp dword [ebp - 0x70], 0x20
jge 0x48090e
mov ecx, dword [ebp - 0x70]
mov edx, 1
shl edx, cl
jmp 0x480913
mov edx, 1
mov eax, dword [ebp + 0x28]
or dword [eax + 0x24], edx
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0x20]
cmp eax, dword [ebp - 0x70]
jge 0x480f89
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x70]
mov dword [edx + 0x20], ecx
jmp 0x480f89
inc dword [ebp - 0x4c]
xor eax, eax
mov dword [ebp - 0x70], eax
jmp 0x48095f
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x4c]
add edx, edx
xor eax, eax
mov al, byte [ecx]
lea edx, [edx + edx*4]
add edx, eax
sub edx, 0x30
mov dword [ebp - 0x70], edx
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x4bf9c0], 4
jne 0x480945
mov dword [ebp - 0x54], esi
mov byte [esi], 0
cmp dword [ebp - 0x70], 0
jne 0x480983
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0x10]
jmp 0x48099c
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x58]
push eax
mov edx, dword [ebp + 0x28]
mov ecx, dword [edx + 0x10]
push ecx
call fcn.0047f22c
add esp, 0xc
mov edx, eax
mov dword [ebp - 0x100], edx
cmp dword [ebp - 0x100], 0
jne 0x4809b9
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4c0201
jmp 0x480f91
mov ecx, dword [ebp - 0x100]
xor eax, eax
mov edx, dword [ebp - 0x100]
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
jne 0x480a00
mov eax, dword [ebp - 0x58]
push eax
mov edx, dword [ebp + 0x24]
push edx
push esi
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.0047f444
add esp, 0x10
test eax, eax
je 0x480a00
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4c0226
jmp 0x480f91
mov byte [esi], 0x3b
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x100]
sub ecx, dword [edx + 0x10]
sar ecx, 8
mov byte [esi + 1], cl
mov eax, dword [ebp + 0x28]
mov edx, dword [ebp - 0x100]
sub edx, dword [eax + 0x10]
and dl, 0xff
mov byte [esi + 2], dl
add esi, 3
jmp 0x480f89
xor ecx, ecx
lea eax, [ebp - 0xc4]
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xcc], eax
jmp 0x480ad2
mov edx, dword [ebp - 0x4c]
inc dword [ebp - 0x4c]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x69
jg 0x480a70
je 0x480a8f
sub eax, 0x2d
je 0x480a81
sub eax, 0x28
je 0x480abb
sub eax, 3
je 0x480ac9
jmp 0x480ad2
sub eax, 0x6d
je 0x480a9a
sub eax, 6
je 0x480aa5
sub eax, 5
je 0x480ab0
jmp 0x480ad2
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xcc], edx
jmp 0x480ad2
mov ecx, dword [ebp - 0xcc]
or dword [ecx], 1
jmp 0x480ad2
mov eax, dword [ebp - 0xcc]
or dword [eax], 2
jmp 0x480ad2
mov edx, dword [ebp - 0xcc]
or dword [edx], 4
jmp 0x480ad2
mov ecx, dword [ebp - 0xcc]
or dword [ecx], 8
jmp 0x480ad2
mov eax, dword [ebp - 0xcc]
or dword [eax], 0x200
jmp 0x480ad2
mov edx, dword [ebp - 0xcc]
or dword [edx], 0x40
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx], 0x29
je 0x480ae6
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x3a
jne 0x480a4e
mov edx, dword [ebp - 0x3c]
or edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
not ecx
and edx, ecx
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x29
jne 0x480b5d
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x6c]
and ecx, 7
and edx, 7
cmp edx, ecx
je 0x480b20
mov byte [esi], 0xf
inc esi
mov al, byte [ebp - 0x6c]
and al, 7
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp + 8]
mov dword [eax], edx
test byte [ebp - 0x6b], 2
setne cl
and ecx, 1
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
xor eax, 1
mov dword [ebp - 0x18], eax
test byte [ebp - 0x3c], 1
je 0x480b4e
mov edx, pe_nt_image_headers32
jmp 0x480b50
xor edx, edx
mov dword [ebp - 0x2c], edx
xor eax, eax
mov dword [ebp - 0x54], eax
jmp 0x480f89
mov dword [ebp - 0x10], 0x4c
inc dword [ebp - 0x4c]
jmp 0x480bbb
test byte [ebp - 0x3b], 0x10
je 0x480b78
mov dword [ebp - 0x10], 0x4c
jmp 0x480bbb
mov ecx, dword [ebp + 0xc]
inc dword [ecx]
mov eax, dword [ecx]
cmp eax, 0x96
jle 0x480bb0
mov dword [ebp - 0x10], 0xe3
mov byte [esi + 3], 0x4b
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx]
sar ecx, 8
mov byte [esi + 4], cl
mov eax, dword [ebp + 0xc]
mov dl, byte [eax]
and dl, 0xff
mov byte [esi + 5], dl
mov dword [ebp - 0x74], 3
jmp 0x480bbb
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
add eax, 0x4c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x46
jl 0x480bc5
mov edx, esi
jmp 0x480bc7
xor edx, edx
mov dword [ebp - 0x54], edx
mov al, byte [ebp - 0x10]
mov byte [esi], al
mov dword [ebp - 0x40], esi
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x78]
mov edx, dword [ebp + 0x28]
push edx
lea edx, [ebp - 0x7c]
mov ecx, dword [ebp + 0x24]
push ecx
push eax
push edx
mov ecx, dword [ebp - 0x74]
push ecx
cmp dword [ebp - 0x10], 0x43
je 0x480bff
cmp dword [ebp - 0x10], 0x44
je 0x480bff
xor eax, eax
jmp 0x480c04
mov eax, 1
push eax
lea ecx, [ebp - 0x4c]
mov edx, dword [ebp + 0x18]
lea eax, [ebp - 0x40]
push edx
push ecx
push eax
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0x3c]
and ecx, 7
push ecx
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00480fa4
add esp, 0x30
test eax, eax
je 0x480f91
cmp dword [ebp - 0x10], 0x47
jne 0x480c93
mov dword [ebp - 0x104], esi
xor edx, edx
mov dword [ebp - 0x38], edx
inc dword [ebp - 0x38]
xor eax, eax
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0x104]
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x104]
cmp byte [eax], 0x3e
jne 0x480c41
cmp dword [ebp - 0x38], 2
jle 0x480c84
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x4c024d
jmp 0x480f91
cmp dword [ebp - 0x38], 1
jne 0x480c93
or ecx, 0xffffffff
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x7c], ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
xor eax, eax
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x10], 0x4c
jge 0x480cb6
cmp dword [ebp - 0x10], 0x46
je 0x480cb6
cmp dword [ebp - 0x10], 0x47
jne 0x480d04
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x480ce1
cmp dword [ebp - 0x7c], 0
jl 0x480cd1
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x48], 1
jmp 0x480cd8
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x28], 0xffffffff
jmp 0x480cf6
cmp dword [ebp - 0x7c], 0
jl 0x480cf6
cmp dword [ebp - 0x78], 0
jge 0x480cf6
mov ecx, dword [ebp - 0x7c]
or ecx, dword [ebp - 0x34]
mov dword [ebp - 0x78], ecx
cmp dword [ebp - 0x78], 0
jl 0x480d16
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x20], eax
jmp 0x480d16
cmp dword [ebp - 0x10], 0x41
jne 0x480d16
cmp dword [ebp - 0x78], 0
jl 0x480d16
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x20], edx
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x29
je 0x480f89
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x4c027f
jmp 0x480f91
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], ecx
push 0
mov eax, dword [ebp - 0x3c]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx]
push ecx
mov eax, dword [ebp + 0x18]
push eax
lea edx, [ebp - 0x4c]
push edx
call fcn.0047ecf0
add esp, 0x14
mov ebx, eax
test ebx, ebx
jge 0x480e18
mov eax, ebx
neg eax
cmp eax, 0x10
jne 0x480d8f
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 1], 0x5c
jne 0x480d83
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 2], 0x45
jne 0x480d83
add dword [ebp - 0x4c], 2
jmp 0x480f89
mov dword [ebp - 0x44], 1
jmp 0x480f89
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x480dae
mov eax, ebx
neg eax
cmp eax, 4
jle 0x480dae
mov edx, ebx
neg edx
cmp edx, 0xd
jge 0x480dae
mov dword [ebp - 0x1c], 0xffffffff
mov ecx, dword [ebp - 0x1c]
mov edx, ebx
neg edx
mov dword [ebp - 0x28], ecx
cmp edx, 0x11
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
jl 0x480df3
neg ebx
add ebx, 0xffffffef
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x54], esi
mov byte [esi], 0x3a
inc esi
mov ecx, dword [ebp - 0x108]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x108]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
jmp 0x480f89
mov edx, ebx
neg edx
cmp edx, 4
jle 0x480e09
mov ecx, ebx
neg ecx
cmp ecx, 0xd
jge 0x480e09
mov eax, esi
jmp 0x480e0b
xor eax, eax
neg bl
mov dword [ebp - 0x54], eax
mov byte [esi], bl
inc esi
jmp 0x480f89
mov edx, dword [ebp - 0x50]
mov ebx, 0x5c
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x54], esi
mov byte [esi], 0x12
add esi, 2
xor edi, edi
cmp dword [ebp - 0x44], 0
je 0x480e52
cmp ebx, 0x5c
jne 0x480e4c
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x45
jne 0x480e4c
xor edx, edx
mov dword [ebp - 0x44], edx
inc dword [ebp - 0x4c]
jmp 0x480ebb
mov byte [esi], bl
inc esi
inc edi
jmp 0x480ebb
test byte [ebp - 0x3c], 8
je 0x480e82
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0xc]
test byte [eax + ebx], 1
jne 0x480ebb
cmp ebx, 0x23
jne 0x480e82
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [edx]
test ebx, ebx
je 0x480e7c
cmp ebx, 0xa
jne 0x480e69
test ebx, ebx
je 0x480edd
jmp 0x480ebb
cmp ebx, 0x5c
jne 0x480eb7
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
push 0
mov edx, dword [ebp - 0x3c]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
push eax
mov edx, dword [ebp + 0x18]
push edx
lea ecx, [ebp - 0x4c]
push ecx
call fcn.0047ecf0
add esp, 0x14
mov ebx, eax
test ebx, ebx
jge 0x480eb7
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x4c], eax
jmp 0x480edd
mov byte [esi], bl
inc esi
inc edi
cmp edi, 0xfa
jge 0x480edd
inc dword [ebp - 0x4c]
xor ebx, ebx
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp + 0x28]
mov bl, byte [edx]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 0x80
je 0x480e2e
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x480f44
cmp edi, 1
jne 0x480f05
mov dword [ebp - 0x28], 0xffffffff
mov ecx, dword [ebp - 0x54]
xor eax, eax
mov al, byte [ecx + 2]
or eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x24], edx
jmp 0x480f76
mov ecx, dword [ebp - 0x54]
xor eax, eax
mov al, byte [ecx + 2]
or eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], eax
cmp edi, 2
jle 0x480f2b
xor edx, edx
mov ecx, dword [ebp + 0x28]
mov dl, byte [esi - 2]
or edx, dword [ebp - 0x2c]
or edx, dword [ecx + 0x28]
jmp 0x480f2e
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x24], edx
xor eax, eax
mov al, byte [esi - 1]
mov ecx, dword [ebp + 0x28]
or eax, dword [ebp - 0x2c]
or eax, dword [ecx + 0x28]
mov dword [ebp - 0x20], eax
jmp 0x480f76
mov eax, dword [ebp - 0x1c]
cmp edi, 1
mov dword [ebp - 0x28], eax
jne 0x480f54
mov edx, dword [ebp - 0x20]
jmp 0x480f62
xor edx, edx
mov eax, dword [ebp + 0x28]
mov dl, byte [esi - 2]
or edx, dword [ebp - 0x2c]
or edx, dword [eax + 0x28]
mov dword [ebp - 0x24], edx
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebp + 0x28]
or ecx, dword [ebp - 0x2c]
or ecx, dword [eax + 0x28]
mov dword [ebp - 0x20], ecx
mov edx, edi
mov ecx, dword [ebp - 0x54]
mov byte [ecx + 1], dl
cmp edi, 0xfa
jge 0x480f89
dec dword [ebp - 0x4c]
inc dword [ebp - 0x4c]
jmp 0x47f5fa
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x4c]
mov dword [eax], edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret