Function at 0x4aec90
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x16a60
call fcn.005965e0
mov eax, dword [0x601018]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov esi, ecx
push 0x10000
xor ebx, ebx
lea ecx, [ebp - 0x1236c]
mov edi, edx
push ebx
push ecx
mov dword [ebp - 0x169fc], esi
mov dword [ebp - 0x16a1c], edi
mov dword [ebp - 0x16a48], eax
call sub.MSVCR100.dll_memset
mov ecx, dword [esi + 0x19dd38]
mov eax, dword [esi + 0x19de54]
lea edx, [ebp - 0x1236c]
add esp, 0xc
push edx
call fcn.004aebc0
add esp, 4
add edi, 0xf884
push ebx
push edi
mov ecx, str.FixedLineLength
mov dword [ebp - 0x169f8], eax
mov dword [ebp - 0x169e4], edi
call fcn.004fd0e0
mov dword [ebp - 0x16a44], eax
cmp dword [ebp - 0x169f8], ebx
jle 0x4aed32
push eax
mov eax, dword [ebp - 0x169f8]
push eax
call dword [sym.imp.MSVCR100.dll_div]
add esp, 8
mov eax, dword [ebp - 0x169f8]
lea ecx, [ebp - 0x1236c]
cmp eax, 0xffffffff
jne 0x4aed5d
mov eax, ecx
lea edx, [eax + 1]
mov dword [ebp - 0x169ec], edx
mov edi, edi
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x4aed50
sub eax, dword [ebp - 0x169ec]
cmp eax, ebx
je 0x4aed72
movzx edx, byte [ecx]
mov dl, byte [edx + 0x60d628]
dec eax
mov byte [ecx], dl
inc ecx
cmp eax, ebx
jne 0x4aed61
push str.temptext.txt
push 0x100
push edi
lea ecx, [ebp - 0x66c]
mov edx, str.template
call fcn.004fd410
push str.DEFAULT
push 0x100
push edi
lea ecx, [ebp - 0xa6c]
mov edx, str.DefaultPDE
call fcn.004fd410
push str.NONE
push 0x40
push edi
lea ecx, [ebp - 0x16c]
mov edx, 0x5e351c
call fcn.004fd410
fldz
push ecx
fstp dword [esp]
push edi
mov ecx, str.OffsetX
call fcn.004fe310
fstp dword [ebp - 0x169ec]
fldz
push ecx
fstp dword [esp]
mov ecx, str.OffsetY
push edi
call fcn.004fe310
fstp dword [ebp - 0x16a00]
fld dword [0x5ed4a8]
push ecx
fstp dword [esp]
push edi
mov ecx, str.PageHeight
call fcn.004fe310
fstp dword [esi + 0x19dcec]
push 0xffffffffffffffff
push edi
mov ecx, str.FontControl
call fcn.004fd0e0
push ebx
push edi
mov ecx, str.CharacterSet
mov dword [ebp - 0x16a0c], eax
call fcn.004fd0e0
push str.PORTRAIT
push 0x100
push edi
lea ecx, [ebp - 0x46c]
mov edx, str.PMODE
mov dword [ebp - 0x16a14], eax
call fcn.004fd410
lea eax, [ebp - 0x46c]
push str.LAND
push eax
call dword [sym.imp.MSVCR100.dll_strstr]
mov ecx, dword [ebp - 0x16a1c]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x169f4], eax
push ecx
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x169f0], ebx
call fcn.0046fbe0
mov edi, dword [esi + 0x19de54]
add esp, 0xc
inc edi
push 0x40000
mov dword [ebp - 0x16a54], edi
call fcn.00596073
add esp, 4
push 0x40000
mov esi, eax
push ebx
push esi
mov dword [ebp - 0x16a24], esi
call sub.MSVCR100.dll_memset
add esp, 0xc
push 0x40000
call fcn.00596073
add esp, 4
push 0x40000
push ebx
push eax
mov dword [ebp - 0x16a18], eax
call sub.MSVCR100.dll_memset
add esp, 0xc
mov byte [esi], 0x56
push 0x1000
lea edx, [ebp - 0x226c]
inc esi
push ebx
push edx
mov dword [ebp - 0x16a10], esi
mov dword [ebp - 0x16a3c], esi
mov byte [ebp - 0x36c], bl
mov byte [ebp - 0x26c], bl
mov byte [ebp - 0x18], bl
mov byte [ebp - 0x56c], bl
mov dword [ebp - 0x16a4c], edi
call sub.MSVCR100.dll_memset
add esp, 0xc
lea eax, [ebp - 0x226c]
push eax
lea ecx, [ebp - 0x16a60]
push ecx
call fcn.004ae9e0
cmp eax, 0xffffffff
je 0x4af068
mov eax, dword [ebp - 0x16a60]
cmp eax, 0x64
jne 0x4aef53
mov eax, dword [ebp - 0x16a58]
mov byte [ebp + eax - 0x226c], 0x3b
mov byte [ebp + eax - 0x226b], bl
jmp 0x4aefa1
cmp eax, 0x44
jne 0x4af035
cmp dword [ebp - 0x16a14], ebx
je 0x4aefa1
mov eax, dword [ebp - 0x16a58]
lea ecx, [ebp - 0x226c]
cmp eax, 0xffffffff
jne 0x4aef89
mov eax, ecx
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x4aef80
sub eax, edi
cmp eax, ebx
je 0x4aefa1
lea ecx, [ecx]
movzx edx, byte [ecx]
mov dl, byte [edx + 0x60d628]
dec eax
mov byte [ecx], dl
inc ecx
cmp eax, ebx
jne 0x4aef90
mov edi, str.JDE
lea eax, [ebp - 0x226c]
lea ecx, [ebp - 0x18]
call fcn.004aea70
mov edi, str.FORM
lea eax, [ebp - 0x226c]
lea ecx, [ebp - 0x26c]
call fcn.004aea70
mov edi, str.FORMS
lea eax, [ebp - 0x226c]
lea ecx, [ebp - 0x26c]
call fcn.004aea70
mov edi, str.BFORM
lea eax, [ebp - 0x226c]
lea ecx, [ebp - 0x56c]
call fcn.004aea70
mov eax, dword [ebp - 0x16a54]
push 0x1000
lea ecx, [ebp - 0x226c]
push ebx
push ecx
mov dword [ebp - 0x16a4c], eax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea edx, [ebp - 0x226c]
push edx
lea eax, [ebp - 0x16a60]
push eax
call fcn.004ae9e0
cmp eax, 0xffffffff
jne 0x4aef31
jmp 0x4af068
mov al, byte [ebp - 0x226c]
cmp al, 0xf1
je 0x4af068
cmp al, 0x31
je 0x4af068
mov ecx, dword [ebp - 0x16a4c]
mov dword [ebp - 0x16a54], ecx
cmp dword [ebp - 0x16a14], ebx
je 0x4af068
mov eax, dword [ebp - 0x16a58]
lea ecx, [ebp - 0x226c]
call fcn.0050b240
push 0x400
lea edx, [ebp - 0x126c]
push ebx
push edx
call sub.MSVCR100.dll_memset
mov eax, dword [ebp - 0x169f8]
add esp, 0xc
push eax
lea ecx, [ebp - 0x1236c]
push ecx
mov ecx, dword [ebp - 0x16a44]
lea edx, [ebp - 0x126c]
xor ebx, ebx
call fcn.004aeaf0
mov edi, str.JDE
lea eax, [ebp - 0x126c]
lea ecx, [ebp - 0x28]
call fcn.004aea70
mov edi, str.FORM
lea eax, [ebp - 0x126c]
lea ecx, [ebp - 0x86c]
call fcn.004aea70
mov edi, str.FORMS
lea eax, [ebp - 0x126c]
lea ecx, [ebp - 0x86c]
call fcn.004aea70
mov edi, str.BFORM
lea eax, [ebp - 0x126c]
lea ecx, [ebp - 0x236c]
call fcn.004aea70
mov edx, dword [ebp - 0x169fc]
push edx
lea ecx, [ebp - 0x18]
call fcn.0046fd20
add esp, 0xc
test eax, eax
je 0x4af259
cmp byte [eax], 0x3a
je 0x4af259
cmp dword [eax], 0x4d524f46
jne 0x4af132
cmp byte [eax + 4], 0x53
jne 0x4af132
cmp byte [eax + 5], 0x3d
jne 0x4af132
add eax, 6
jmp 0x4af250
mov edx, 0xa
mov ecx, str.FONTINDEX
mov edi, eax
mov edi, edi
mov ebx, dword [edi]
cmp ebx, dword [ecx]
jne 0x4af1a9
sub edx, 4
add ecx, 4
add edi, 4
cmp edx, 4
jae 0x4af140
mov dl, byte [ecx]
cmp dl, byte [edi]
jne 0x4af1a9
mov cl, byte [ecx + 1]
cmp cl, byte [edi + 1]
jne 0x4af1a9
add eax, 0xa
mov edi, eax
xor edx, edx
lea esp, [esp]
mov cl, byte [edi]
cmp cl, 0x20
je 0x4af186
cmp cl, 0x40
je 0x4af186
cmp cl, 0x30
jl 0x4af19d
cmp cl, 0x39
jg 0x4af19d
cmp cl, 0x30
jl 0x4af19a
cmp cl, 0x39
jg 0x4af19a
movsx ecx, cl
lea edx, [edx + edx*4]
lea edx, [ecx + edx*2 - 0x30]
inc edi
jmp 0x4af170
inc edx
mov dword [ebp - 0x16a0c], edx
jmp 0x4af250
mov ecx, dword [eax]
cmp ecx, 0x49444f4d
jne 0x4af1ff
cmp byte [eax + 4], 0x46
jne 0x4af1ff
cmp byte [eax + 5], 0x59
jne 0x4af1ff
cmp byte [eax + 6], 0x3d
jne 0x4af1ff
add eax, 7
cmp byte [eax], 0x28
jne 0x4af1ce
inc eax
mov cl, byte [eax]
lea edx, [ebp - 0x36c]
cmp cl, 0x20
je 0x4af1fa
jmp 0x4af1e0
cmp cl, 0xd
je 0x4af1fa
cmp cl, 0x2c
je 0x4af1fa
cmp cl, 0x3b
je 0x4af1fa
inc eax
mov byte [edx], cl
mov cl, byte [eax]
inc edx
cmp cl, 0x20
jne 0x4af1e0
mov byte [edx], 0
jmp 0x4af250
cmp ecx, 0x4d524f46
jne 0x4af24f
cmp byte [eax + 4], 0x41
jne 0x4af24f
cmp byte [eax + 5], 0x54
jne 0x4af24f
cmp byte [eax + 6], 0x3d
jne 0x4af24f
mov cl, byte [eax + 7]
add eax, 7
lea edx, [ebp - 0xa6c]
cmp cl, 0x20
je 0x4af24a
lea ebx, [ebx]
cmp cl, 0x29
je 0x4af24a
cmp cl, 0x2c
je 0x4af24a
cmp cl, 0x3b
je 0x4af24a
inc eax
mov byte [edx], cl
mov cl, byte [eax]
inc edx
cmp cl, 0x20
jne 0x4af230
mov byte [edx], 0
jmp 0x4af250
inc eax
cmp byte [eax], 0x3a
jne 0x4af116
mov edx, dword [ebp - 0x169fc]
push edx
lea ecx, [ebp - 0xa6c]
call fcn.0046fd20
add esp, 4
cmp byte [ebp - 0x26c], 0
mov edi, eax
jne 0x4af29a
mov eax, dword [ebp - 0x169e4]
push str.NONE
push 0x100
push eax
lea ecx, [ebp - 0x26c]
mov edx, str.defaultform
call fcn.004fd410
cmp byte [ebp - 0x36c], 0
jne 0x4af2c4
mov ecx, dword [ebp - 0x169e4]
push 0x5bc564
push 0x100
push ecx
lea ecx, [ebp - 0x36c]
mov edx, str.cmename
call fcn.004fd410
mov edx, 0x3f
lea eax, [ebp - 0x169c4]
xor ebx, ebx
mov ecx, 1
mov dword [eax - 8], ecx
mov dword [eax - 4], ecx
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov byte [eax + 0x10], bl
add eax, 0x118
sub edx, ecx
jns 0x4af2d1
mov eax, ecx
mov dword [ebp - 0x169e4], eax
mov dword [ebp - 0x16a20], eax
mov dword [ebp - 0x169d8], ebx
cmp byte [ebp - 0x36c], bl
je 0x4af53e
mov edx, dword [ebp - 0x169fc]
push edx
lea ecx, [ebp - 0x36c]
call fcn.0046fd20
add esp, 4
mov dword [ebp - 0x169e8], eax
test eax, eax
je 0x4af53e
lea eax, [ebp - 0x12c]
lea ecx, [ebp - 0x169e8]
call fcn.004ae940
test eax, eax
je 0x4af53e
lea eax, [ebp - 0x169c0]
mov dword [ebp - 0x169d0], eax
lea ecx, [ebp - 0x169cc]
lea edx, [ebp - 0x169b8]
lea eax, [ebp - 0x169bc]
lea ebx, [ebp - 0x169c4]
mov dword [ebp - 0x169e0], ecx
mov dword [ebp - 0x16a08], edx
mov dword [ebp - 0x16a04], eax
mov eax, dword [ebp - 0x12c]
cmp eax, 0x454e494c
jne 0x4af41b
cmp byte [ebp - 0x128], 0x3d
jne 0x4af525
lea ecx, [ebp - 0x127]
lea esi, [ebp - 0x169d4]
mov dword [ebp - 0x169d4], ecx
call fcn.0046fea0
call fcn.00596d60
cmp dword [ebp - 0x169e4], eax
je 0x4af3ec
inc dword [ebp - 0x169d8]
mov ecx, pe_nt_image_headers32
add dword [ebp - 0x16a04], ecx
add dword [ebp - 0x16a08], ecx
add dword [ebp - 0x169e0], ecx
add ebx, ecx
add dword [ebp - 0x169d0], ecx
mov edx, dword [ebp - 0x169e0]
mov dword [ebp - 0x169e4], eax
mov dword [edx], eax
mov eax, dword [ebp - 0x169d0]
mov dword [eax], 0xffffffff
mov dword [ebx], 1
mov dword [ebp - 0x16a20], 1
jmp 0x4af51f
cmp eax, 0x544e4f46
jne 0x4af458
cmp byte [ebp - 0x128], 0x3d
jne 0x4af525
lea ecx, [ebp - 0x127]
lea esi, [ebp - 0x169d4]
mov dword [ebp - 0x169d4], ecx
call fcn.0046fea0
call fcn.00596d60
mov edx, dword [ebp - 0x16a04]
mov dword [edx], eax
jmp 0x4af51f
cmp eax, 0x3d4b4e49
jne 0x4af488
lea eax, [ebp - 0x128]
lea esi, [ebp - 0x169d4]
mov dword [ebp - 0x169d4], eax
call fcn.0046fea0
call fcn.00596d60
mov ecx, dword [ebp - 0x16a08]
mov dword [ecx], eax
jmp 0x4af51f
cmp eax, 0x3d534f50
jne 0x4af525
lea edx, [ebp - 0x128]
lea esi, [ebp - 0x169d4]
mov dword [ebp - 0x169d4], edx
call fcn.0046fea0
call fcn.00596d60
cmp eax, dword [ebp - 0x16a20]
je 0x4af51f
mov edx, dword [ebp - 0x169e0]
mov ecx, dword [ebp - 0x169d0]
inc dword [ebp - 0x169d8]
mov esi, pe_nt_image_headers32
add dword [ebp - 0x16a04], esi
add dword [ebp - 0x16a08], esi
add edx, esi
add ecx, esi
add ebx, esi
cmp dword [ebp - 0x169d8], 0
mov esi, dword [ebp - 0x169e4]
mov dword [ebp - 0x169e0], edx
mov dword [ebp - 0x169d0], ecx
mov dword [ebp - 0x16a20], eax
mov dword [ebx], eax
mov dword [edx], esi
mov dword [ecx], 0xffffffff
jle 0x4af51f
cmp dword [edx - 0x118], esi
jne 0x4af51f
sub eax, dword [ebx - 0x118]
mov dword [ecx - 0x118], eax
mov esi, dword [ebp - 0x16a3c]
lea eax, [ebp - 0x12c]
lea ecx, [ebp - 0x169e8]
call fcn.004ae940
test eax, eax
jne 0x4af385
fldz
lea ebx, [esi + 1]
mov byte [esi], 0x44
fst dword [ebp - 0x123cc]
add esi, 3
fstp dword [ebp - 0x1239c]
mov dword [ebp - 0x16a28], ebx
mov dword [ebp - 0x169d0], 0
test edi, edi
je 0x4af7ec
mov ecx, str.FONTS_
mov eax, 7
mov dl, byte [ecx]
mov byte [esi], dl
inc esi
inc ecx
dec eax
jne 0x4af577
cmp byte [edi], 0x3b
mov dword [ebp - 0x16a3c], esi
je 0x4af7d9
mov dword [ebp - 0x169e8], eax
cmp dword [edi], 0x49474542
jne 0x4af607
cmp byte [edi + 4], 0x4e
jne 0x4af607
cmp byte [edi + 5], 0x3d
jne 0x4af607
add edi, 7
lea esi, [ebp - 0x169d4]
mov dword [ebp - 0x169d4], edi
call fcn.0046fea0
mov edi, dword [ebp - 0x169e8]
inc dword [ebp - 0x169d4]
fstp dword [ebp + edi - 0x1239c]
call fcn.0046fea0
fstp dword [ebp + edi - 0x123cc]
add edi, 4
mov dword [ebp - 0x169e8], edi
mov edi, dword [ebp - 0x169d4]
mov al, byte [edi]
cmp al, 0x2c
je 0x4af601
cmp al, 0x3b
je 0x4af601
cmp al, 0x29
je 0x4af601
mov al, byte [edi + 1]
inc edi
cmp al, 0x2c
jne 0x4af5f1
mov esi, dword [ebp - 0x16a3c]
cmp dword [edi], 0x544e4f46
jne 0x4af7c9
cmp byte [edi + 4], 0x53
jne 0x4af61f
cmp byte [edi + 5], 0x3d
je 0x4af629
cmp byte [edi + 4], 0x3d
jne 0x4af7c9
cmp byte [edi + 4], 0x3d
jne 0x4af630
dec edi
mov al, byte [edi + 6]
add edi, 6
cmp al, 0x3b
je 0x4af7c9
mov edi, edi
cmp al, 0x29
je 0x4af7c9
mov ecx, dword [ebp - 0x169d0]
mov edi, edi
mov al, byte [edi]
cmp al, 0xd
je 0x4af787
cmp al, 0xa
je 0x4af787
cmp al, 0x2c
je 0x4af787
cmp al, 0x20
je 0x4af787
cmp al, 9
je 0x4af787
cmp al, 0x28
je 0x4af78b
mov dword [ebp - 0x169d0], ecx
cmp al, 0x3b
je 0x4af7c9
lea ecx, [ebp - 0x18]
cmp al, 0x20
je 0x4af6a9
cmp al, 0x29
je 0x4af6a9
cmp al, 0x2c
je 0x4af6a9
inc edi
mov byte [ecx], al
mov al, byte [edi]
inc ecx
cmp al, 0x20
jne 0x4af697
lea eax, [ebp - 0x18]
mov byte [ecx], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4af6b2
sub eax, edx
mov ebx, eax
test ebx, ebx
jle 0x4af6d1
push ebx
lea eax, [ebp - 0x18]
push eax
push esi
call sub.MSVCR100.dll_memcpy
add esp, 0xc
add esi, ebx
mov byte [esi], 0x2c
inc esi
lea eax, [ebp - 0x18]
mov dword [ebp - 0x16a3c], esi
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4af6e0
cmp byte [edi], 0x2c
mov ecx, dword [str..FNT]
mov dl, byte [0x5df90c]
mov dword [eax], ecx
mov byte [eax + 4], dl
jne 0x4af7b7
inc edi
lea esi, [ebp - 0x169d4]
mov dword [ebp - 0x169d4], edi
call fcn.0046fea0
fstp dword [ebp - 0x169e4]
fld dword [ebp - 0x169e4]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4af792
sub esp, 8
fstp qword [esp]
lea eax, [ebp - 0x76c]
push str._2.2f
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
lea esi, [ebp - 0x76c]
mov eax, esi
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4af753
sub eax, edx
test eax, eax
jle 0x4af775
mov ecx, dword [ebp - 0x16a3c]
mov dl, byte [esi]
mov byte [ecx], dl
inc ecx
inc esi
dec eax
mov dword [ebp - 0x16a3c], ecx
jne 0x4af760
mov eax, dword [ebp - 0x16a3c]
mov byte [eax], 0x2c
inc eax
mov dword [ebp - 0x16a3c], eax
jmp 0x4af794
cmp al, 0x28
jne 0x4af78c
inc ecx
inc edi
jmp 0x4af650
fstp st(0)
mov edi, dword [ebp - 0x169d4]
cmp byte [edi], 0x29
jne 0x4af7b1
mov eax, dword [ebp - 0x169d0]
dec eax
inc edi
mov dword [ebp - 0x169d0], eax
test eax, eax
je 0x4af7c3
mov esi, dword [ebp - 0x16a3c]
mov al, byte [edi]
cmp al, 0x3b
jne 0x4af640
jmp 0x4af7c9
mov esi, dword [ebp - 0x16a3c]
inc edi
cmp byte [edi], 0x3b
jne 0x4af595
mov ebx, dword [ebp - 0x16a28]
mov ecx, 0x5e35d0
mov eax, 2
mov dl, byte [ecx]
mov byte [esi], dl
inc esi
inc ecx
dec eax
jne 0x4af7e3
cmp byte [ebp - 0x26c], 0
je 0x4af82f
mov ecx, str.FORM_
mov eax, 6
sub ecx, esi
mov dl, byte [esi + ecx]
mov byte [esi], dl
inc esi
dec eax
jne 0x4af801
lea ecx, [ebp - 0x26c]
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4af815
sub eax, edi
test eax, eax
jle 0x4af82b
mov dl, byte [ecx]
mov byte [esi], dl
inc esi
inc ecx
dec eax
jne 0x4af822
mov byte [esi], 0x29
inc esi
cmp byte [ebp - 0x56c], 0
je 0x4af878
mov ecx, str._BFORM
mov eax, 7
sub ecx, esi
mov dl, byte [esi + ecx]
mov byte [esi], dl
inc esi
dec eax
jne 0x4af844
lea eax, [ebp - 0x56c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4af856
sub eax, edx
mov edi, eax
test edi, edi
jle 0x4af878
push edi
lea eax, [ebp - 0x56c]
push eax
push esi
call sub.MSVCR100.dll_memcpy
add esp, 0xc
add esi, edi
mov byte [esi], 0x3b
test ebx, ebx
je 0x4af88f
lea eax, [esi + 1]
sub eax, ebx
add eax, 0xfffffffe
mov byte [ebx], al
shr eax, 8
mov byte [ebx + 1], al
cmp dword [ebp - 0x169f4], 0
mov byte [esi + 1], 0x52
lea edi, [esi + 2]
mov byte [esi + 4], 1
je 0x4af8f1
fld dword [ebp - 0x123cc]
fadd dword [ebp - 0x169ec]
fld qword [0x5ed4b8]
fmul st(1), st(0)
fxch st(1)
call fcn.00596d60
fld dword [ebp - 0x1239c]
fadd dword [ebp - 0x16a00]
mov byte [esi + 5], 5
mov byte [esi + 6], al
shr eax, 8
fmulp st(1)
mov byte [esi + 7], al
call fcn.00596d60
mov byte [esi + 8], 7
mov byte [esi + 9], al
shr eax, 8
mov byte [esi + 0xa], al
mov byte [esi + 0xb], 2
jmp 0x4af949
mov edx, dword [ebp - 0x169fc]
mov byte [esi + 5], 9
fld dword [edx + 0x19dce8]
fsub dword [ebp - 0x1239c]
fsub dword [ebp - 0x16a00]
fld qword [0x5ed4b8]
fmul st(1), st(0)
fxch st(1)
call fcn.00596d60
fld dword [ebp - 0x123cc]
fadd dword [ebp - 0x169ec]
mov byte [esi + 6], 5
mov byte [esi + 7], al
shr eax, 8
fmulp st(1)
mov byte [esi + 8], al
call fcn.00596d60
mov byte [esi + 9], 7
mov byte [esi + 0xa], al
shr eax, 8
mov byte [esi + 0xb], al
add esi, 0xc
test edi, edi
je 0x4af95f
mov eax, esi
sub eax, edi
add eax, 0xfffffffe
mov byte [edi], al
shr eax, 8
mov byte [edi + 1], al
mov byte [esi], 0x52
mov ecx, 1
add esi, ecx
mov eax, esi
add esi, 2
mov byte [esi], 0x20
add esi, ecx
mov byte [esi], 0
add esi, ecx
mov byte [esi], 0
add esi, ecx
cmp dword [ebp - 0x16a60], 0x50
mov dword [ebp - 0x16a28], eax
mov byte [ebp - 0x169d9], 0
mov dword [ebp - 0x169e0], ecx
mov dword [ebp - 0x169ec], ecx
je 0x4afcac
push 0x400
lea ecx, [ebp - 0x126c]
push 0
push ecx
call sub.MSVCR100.dll_memset
mov ebx, dword [ebp - 0x169ec]
add esp, 0xc
test ebx, ebx
js 0x4af9e5
mov edx, dword [ebp - 0x169f8]
mov ecx, dword [ebp - 0x16a44]
push edx
lea eax, [ebp - 0x1236c]
push eax
lea edx, [ebp - 0x126c]
call fcn.004aeaf0
add esp, 8
push 0x1000
lea ecx, [ebp - 0x226c]
push 0
inc ebx
push ecx
mov dword [ebp - 0x169ec], ebx
call sub.MSVCR100.dll_memset
add esp, 0xc
lea edx, [ebp - 0x226c]
push edx
lea eax, [ebp - 0x16a60]
push eax
call fcn.004ae9e0
cmp eax, 0xffffffff
je 0x4afca6
mov edi, dword [ebp - 0x16a58]
cmp edi, 0x96
jl 0x4afa39
mov edi, 0x96
mov dword [ebp - 0x16a58], edi
jmp 0x4afa3d
test edi, edi
jle 0x4afaa3
mov edx, dword [ebp - 0x16a0c]
test edx, edx
je 0x4afa54
mov cl, byte [ebp + edx - 0x226c]
mov byte [ebp - 0x169d9], cl
cmp dword [ebp - 0x16a14], 0
je 0x4afa92
mov eax, edi
lea ecx, [ebp - 0x226c]
cmp edi, 0xffffffff
jne 0x4afa7f
mov eax, ecx
lea ebx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4afa70
mov edx, dword [ebp - 0x16a0c]
sub eax, ebx
test eax, eax
je 0x4afa92
movzx ebx, byte [ecx]
mov bl, byte [ebx + 0x60d628]
mov byte [ecx], bl
inc ecx
dec eax
jne 0x4afa83
test edx, edx
je 0x4afaa3
mov al, byte [ebp - 0x169d9]
mov byte [ebp + edx - 0x226c], al
mov ecx, 0x1000
sub ecx, edi
push ecx
lea ebx, [ebp + edi - 0x226c]
push 0
push ebx
call sub.MSVCR100.dll_memset
add esp, 0xc
cmp dword [ebp - 0x16a28], 0
mov byte [ebx], 0
je 0x4afade
mov ecx, dword [ebp - 0x16a28]
mov eax, esi
sub eax, ecx
add eax, 0xfffffffe
mov byte [ecx], al
shr eax, 8
mov byte [ecx + 1], al
mov byte [esi], 0x52
movsx eax, byte [ebp - 0x226c]
inc esi
mov dword [ebp - 0x16a28], esi
cmp eax, 0x2b
jne 0x4afafd
mov eax, 1
xor edx, edx
jmp 0x4afb20
cmp eax, 0x30
jne 0x4afb0c
mov eax, 0x13
lea edx, [eax - 0x11]
jmp 0x4afb20
cmp eax, 0x2d
jne 0x4afb1b
mov eax, 0x1b
lea edx, [eax - 0x18]
jmp 0x4afb20
mov edx, 1
add dword [ebp - 0x169e0], edx
mov byte [esi + 2], al
mov eax, dword [ebp - 0x16a0c]
add esi, 3
mov dword [ebp - 0x169d0], edx
cmp eax, 0xffffffff
je 0x4afb61
mov al, byte [ebp + eax - 0x226c]
mov dword [ebp - 0x169f0], 1
test al, 0x1f
je 0x4afb61
movsx eax, al
and eax, 0xf
mov byte [esi], 0
mov byte [esi + 1], al
add esi, 2
cmp dword [ebp - 0x169d8], 0
mov dword [ebp - 0x169e8], 0
jle 0x4afc71
mov eax, dword [ebp - 0x169d8]
mov ecx, dword [ebp - 0x169e0]
lea edi, [ebp - 0x169cc]
mov dword [ebp - 0x16a00], eax
cmp edx, 2
jne 0x4afb9c
lea eax, [ecx - 1]
cmp eax, dword [edi]
jmp 0x4afbaf
cmp edx, 3
jne 0x4afbc1
mov eax, dword [edi]
lea ebx, [ecx - 1]
cmp ebx, eax
je 0x4afbb1
lea ebx, [ecx - 2]
cmp ebx, eax
jne 0x4afbc1
mov eax, dword [edi + 0x10]
mov byte [esi], 0
mov byte [esi + 1], al
mov byte [esi + 2], 0x20
add esi, 3
cmp ecx, dword [edi]
jne 0x4afc56
mov ecx, 1
mov dword [ebp - 0x169e8], ecx
cmp dword [edi + 0x14], ecx
je 0x4afbde
mov byte [esi], 0xc
add esi, ecx
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 8]
add edx, dword [ebp - 0x169f0]
mov byte [esi], 0
add esi, ecx
mov byte [esi], al
mov eax, dword [edi + 0xc]
add esi, ecx
lea edx, [ebp + edx - 0x226c]
cmp eax, 0xffffffff
jne 0x4afc10
mov eax, edx
lea ebx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4afc07
sub eax, ebx
mov ecx, edx
lea ebx, [ecx + 1]
mov dword [ebp - 0x169f4], ebx
jmp 0x4afc20
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x4afc20
sub ecx, dword [ebp - 0x169f4]
cmp eax, ecx
jbe 0x4afc33
mov eax, ecx
test eax, eax
jle 0x4afc40
mov cl, byte [edx]
mov byte [esi], cl
inc esi
inc edx
dec eax
jne 0x4afc37
cmp dword [edi + 0x14], 1
mov edx, dword [ebp - 0x169d0]
mov ecx, dword [ebp - 0x169e0]
je 0x4afc56
mov byte [esi], 0xd
inc esi
add edi, 0x118
dec dword [ebp - 0x16a00]
jne 0x4afb90
cmp dword [ebp - 0x169e8], 0
jne 0x4afc99
mov ecx, dword [ebp - 0x169f0]
lea ecx, [ebp + ecx - 0x226b]
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4afc83
sub eax, edi
test eax, eax
jle 0x4afc99
mov dl, byte [ecx]
mov byte [esi], dl
inc esi
inc ecx
dec eax
jne 0x4afc90
cmp dword [ebp - 0x16a60], 0x50
jne 0x4af9a3
mov eax, dword [ebp - 0x16a28]
test eax, eax
je 0x4afcbf
mov ecx, esi
sub ecx, eax
add ecx, 0xfffffffe
mov byte [eax], cl
shr ecx, 8
mov byte [eax + 1], cl
mov edi, dword [ebp - 0x16a18]
push 0x40000
lea eax, [esi + 1]
mov byte [esi], 0x50
push 0
push edi
add esi, 3
mov word [eax], 2
call sub.MSVCR100.dll_memset
mov edx, dword [ebp - 0x16a24]
movzx eax, byte [edx]
mov byte [edi], al
mov eax, dword [ebp - 0x16a10]
mov dword [ebp - 0x169d8], eax
mov al, byte [eax]
add esp, 0xc
inc edi
cmp al, 0x50
je 0x4aff32
jmp 0x4afd10
mov ecx, dword [ebp - 0x169d8]
mov byte [edi], al
movzx edx, byte [ecx + 2]
shl dx, 8
movzx ebx, dx
movzx edx, byte [ecx + 1]
or ebx, edx
add ecx, 3
mov dword [ebp - 0x169f0], ebx
mov dword [ebp - 0x169d8], ecx
cmp al, 0x44
jne 0x4afeff
push 0x100
lea eax, [ebp - 0x66c]
push 0
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
push 0x400
lea ecx, [ebp - 0xe6c]
push 0
push ecx
call sub.MSVCR100.dll_memset
add esp, 0xc
push 0x100
lea edx, [ebp - 0x96c]
push 0
push edx
call sub.MSVCR100.dll_memset
add esp, 0xc
push 0x100
lea eax, [ebp - 0x46c]
push 0
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
cmp ebx, 0x400
jbe 0x4afda5
mov ebx, 0x400
mov ecx, dword [ebp - 0x169d8]
push ebx
push ecx
lea edx, [ebp - 0xe6c]
push edx
call dword [sym.imp.MSVCR100.dll_strncpy]
add esp, 0xc
lea eax, [ebp - 0xe6c]
push str.FORM
push eax
call dword [sym.imp.MSVCR100.dll_strstr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4afed5
lea edx, [ebp - 0xe6c]
mov ecx, ebx
sub ecx, edx
push ecx
mov eax, edx
push eax
lea ecx, [ebp - 0x66c]
push ecx
call dword [sym.imp.MSVCR100.dll_strncpy]
mov al, byte [ebx]
add esp, 0xc
cmp al, 0x3b
je 0x4afe0c
cmp al, 0x2c
je 0x4afe0c
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x3b
jne 0x4afe00
lea eax, [ebp - 0xe6c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4afe15
sub eax, edx
sub eax, ebx
lea edx, [ebp + eax - 0xe6c]
push edx
lea eax, [ebp - 0x96c]
push ebx
push eax
call dword [sym.imp.MSVCR100.dll_strncpy]
mov ebx, dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
lea ecx, [ebp - 0x86c]
push ecx
lea edx, [ebp - 0x46c]
push str.FORM__s_
push edx
call ebx
add esp, 0xc
push 0x400
lea eax, [ebp - 0xe6c]
push 0
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x96c]
push ecx
lea edx, [ebp - 0x46c]
push edx
lea eax, [ebp - 0x66c]
push eax
lea ecx, [ebp - 0xe6c]
push str._s__s__s_
push ecx
call ebx
lea eax, [ebp - 0xe6c]
add esp, 0x14
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4afea0
sub eax, ecx
mov ebx, eax
mov edx, eax
shr edx, 8
push ebx
lea eax, [ebp - 0xe6c]
mov byte [edi + 1], bl
mov byte [edi + 2], dl
push eax
add edi, 3
push edi
call dword [sym.imp.MSVCR100.dll_strncpy]
add esp, 0xc
add edi, ebx
mov ebx, dword [ebp - 0x169f0]
jmp 0x4aff1a
mov ebx, dword [ebp - 0x169f0]
mov edx, dword [ebp - 0x169d8]
mov ecx, ebx
shr ecx, 8
push ebx
mov byte [edi + 1], bl
mov byte [edi + 2], cl
push edx
add edi, 3
push edi
call dword [sym.imp.MSVCR100.dll_strncpy]
add esp, 0xc
add edi, ebx
jmp 0x4aff1a
mov eax, ebx
shr eax, 8
push ebx
mov byte [edi + 1], bl
mov byte [edi + 2], al
push ecx
add edi, 3
push edi
call sub.MSVCR100.dll_memcpy
add esp, 0xc
add edi, ebx
mov eax, dword [ebp - 0x169d8]
add eax, ebx
mov dword [ebp - 0x169d8], eax
mov al, byte [eax]
cmp al, 0x50
jne 0x4afd10
mov ebx, dword [ebp - 0x169fc]
mov eax, dword [ebp - 0x16a18]
mov byte [edi], 0x50
mov ecx, dword [ebx + 0x19de54]
mov edx, dword [ebx + 0x19dd3c]
sub edi, eax
mov dword [ebx + 0x19de54], eax
mov eax, dword [ebp - 0x16a48]
mov dword [ebp - 0x16a10], ecx
mov dword [ebp - 0x169f4], edx
mov edx, dword [ebp - 0x16a1c]
push eax
mov ecx, ebx
mov dword [ebx + 0x19dd38], edi
mov dword [ebx + 0x19dd3c], edi
call fcn.004b3550
mov ecx, dword [ebx + 0x311e48]
add esp, 4
push ecx
call fcn.00596073
mov edx, dword [ebx + 0x311e48]
add esp, 4
push edx
mov edi, eax
push 0
push edi
call sub.MSVCR100.dll_memset
mov eax, dword [ebx + 0x311e48]
mov ecx, dword [ebx + 0x311e4c]
add esp, 0xc
push eax
push ecx
push edi
call sub.MSVCR100.dll_memcpy
mov eax, dword [ebp - 0x16a24]
mov edx, dword [ebp - 0x16a48]
add esp, 0xc
sub esi, eax
push edx
mov edx, dword [ebp - 0x16a1c]
mov ecx, ebx
mov dword [ebx + 0x19de54], eax
mov dword [ebx + 0x19dd38], esi
mov dword [ebx + 0x19dd3c], esi
call fcn.004b3550
xor eax, eax
add esp, 4
cmp dword [ebx + 0x311e48], eax
jle 0x4b0020
lea esp, [esp]
mov esi, dword [ebx + 0x311e4c]
cmp byte [esi + eax], 1
mov cl, byte [eax + edi]
jne 0x4b0017
cmp cl, 1
je 0x4b0017
mov byte [esi + eax], cl
inc eax
cmp eax, dword [ebx + 0x311e48]
jl 0x4b0000
mov eax, dword [ebp - 0x16a10]
mov ecx, dword [ebp - 0x169f4]
mov esi, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
push edi
mov dword [ebx + 0x19de54], eax
mov dword [ebx + 0x19dd3c], ecx
call esi
mov edx, dword [ebp - 0x16a24]
add esp, 4
push edx
call esi
mov eax, dword [ebp - 0x16a18]
add esp, 4
push eax
call esi
mov ecx, dword [ebp - 8]
add esp, 4
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00596083
mov esp, ebp
pop ebp
ret