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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5cd6fd
mov eax, dword fs:[0]
push eax
sub esp, 0x124
push ebx
push ebp
push esi
push edi
mov eax, dword [0x680f10]
xor eax, esp
push eax
lea eax, [esp + 0x138]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x60], ebx
xor esi, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0xcc], esi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd8], esi
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe0], esi
lea eax, [esp + 0xcc]
push eax
mov dword [esp + 0x144], esi
call fcn.00467560
xor eax, eax
lea ecx, [esp + 0x8c]
push ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea edx, [esp + 0x9c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
mov ecx, ebx
call fcn.004722b0
cmp eax, esi
mov dword [esp + 0x64], eax
je 0x4746ad
mov eax, dword [ebx + 0xd8]
add eax, 0xfffffffe
cmp eax, 1
ja 0x4746ad
push 0x5ef27f
lea ecx, [esp + 0x24]
call fcn.00489f70
push 0x5ef5f4
lea ecx, [esp + 0x70]
mov byte [esp + 0x144], 1
call fcn.0048cd50
lea eax, [esp + 0x6c]
push eax
lea ecx, [ebx + 0x14]
mov byte [esp + 0x144], 2
call fcn.004b7ac0
cmp dword [esp + 0x88], 0x10
mov esi, eax
mov byte [esp + 0x140], 1
mov dword [esp + 0x6c], 0x5f1558
jb 0x4742bc
mov ecx, dword [esp + 0x74]
push ecx
call fcn.004274fc
add esp, 4
test esi, esi
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], 0
mov byte [esp + 0x74], 0
mov dword [esp + 0x6c], 0x5f13d0
je 0x474383
push 0
mov ecx, esi
call fcn.004b5830
mov esi, eax
test esi, esi
je 0x474383
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
cmp eax, 2
jne 0x474383
mov ecx, esi
call fcn.004b57d0
cmp dword [eax + 0x18], 0x10
jb 0x474319
mov ebp, dword [eax + 4]
jmp 0x47431c
lea ebp, [eax + 4]
mov ecx, esi
call fcn.004b57d0
test ebp, ebp
mov edi, dword [eax + 0x14]
je 0x474383
xor esi, esi
test edi, edi
jbe 0x474383
movzx ecx, byte [esi + ebp]
push ecx
lea edx, [esp + 0x1c]
push 0x5ef5f8
push edx
call fcn.005b8727
add esp, 0xc
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
call fcn.00489f70
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x24]
mov byte [esp + 0x144], 3
call fcn.00412680
lea ecx, [esp + 0x24]
mov byte [esp + 0x140], 1
call fcn.00401650
add esi, 1
cmp esi, edi
jb 0x474330
push 0
lea edx, [esp + 0xa0]
push edx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.004a09c0
add esp, 0x10
mov eax, dword [ebx + 0xd8]
sub eax, 2
mov byte [esp + 0x140], 4
mov ecx, 0x5ef600
je 0x4743c6
sub eax, 1
jne 0x4743cb
mov ecx, 0x5ef608
jmp 0x4743cb
mov ecx, 0x5ef604
mov eax, dword [esp + 0xcc]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
mov dword [ecx], eax
je 0x4743ec
add eax, 8
push eax
call esi
lea edx, [esp + 0x70]
push edx
call fcn.00468580
add esp, 8
mov eax, dword [eax]
test eax, eax
mov byte [esp + 0x144], 5
je 0x47440b
mov eax, dword [eax]
jmp 0x47440d
xor eax, eax
push eax
mov eax, dword [esp + 0xdc]
test eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
mov dword [ecx], eax
je 0x474428
add eax, 8
push eax
call esi
lea eax, [esp + 0x68]
push eax
call fcn.00468580
add esp, 8
mov eax, dword [eax]
test eax, eax
mov byte [esp + 0x148], 6
je 0x474447
mov eax, dword [eax]
jmp 0x474449
xor eax, eax
push eax
mov eax, dword [esp + 0xdc]
test eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
mov dword [ecx], eax
je 0x474464
add eax, 8
push eax
call esi
lea ecx, [esp + 0x28]
push ecx
call fcn.00468580
add esp, 8
mov eax, dword [eax]
test eax, eax
mov byte [esp + 0x14c], 7
je 0x474483
mov eax, dword [eax]
jmp 0x474485
xor eax, eax
push eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x474492
mov ecx, dword [eax]
jmp 0x474494
xor ecx, ecx
test eax, eax
push ecx
je 0x47449d
mov eax, dword [eax]
jmp 0x47449f
xor eax, eax
push eax
mov eax, dword [esp + 0xf4]
test eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
mov dword [ecx], eax
je 0x4744ba
add eax, 8
push eax
call esi
lea edx, [esp + 0x40]
push edx
call fcn.00468580
add esp, 8
mov eax, dword [eax]
test eax, eax
mov byte [esp + 0x158], 8
je 0x4744d9
mov eax, dword [eax]
jmp 0x4744db
xor eax, eax
push eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4744e8
mov eax, dword [eax]
jmp 0x4744ea
xor eax, eax
push eax
mov eax, dword [esp + 0x100]
test eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
mov dword [ecx], eax
je 0x474505
add eax, 8
push eax
call esi
lea eax, [esp + 0x78]
push eax
call fcn.00468580
add esp, 8
mov eax, dword [eax]
test eax, eax
mov byte [esp + 0x160], 9
je 0x474524
mov eax, dword [eax]
jmp 0x474526
xor eax, eax
push eax
mov eax, dword [esp + 0xfc]
test eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
mov dword [ecx], eax
je 0x474541
add eax, 8
push eax
call esi
lea ecx, [esp + 0x80]
push ecx
call fcn.00468580
add esp, 8
mov eax, dword [eax]
test eax, eax
mov byte [esp + 0x164], 0xa
je 0x474563
mov ecx, dword [eax]
jmp 0x474565
xor ecx, ecx
mov eax, dword [esp + 0x44]
test eax, eax
je 0x474571
mov eax, dword [eax]
jmp 0x474573
xor eax, eax
push ecx
push eax
lea edx, [esp + 0x7c]
push str.__xpacket_begin_id_s____n_x:xmpmeta_xmlns:x_adobe:ns:meta____n_t_rdf:RDF_xmlns:iX_http:__ns.adobe.com_iX_1.0___xmlns:rdf_http:__www.w3.org_1999_02_22_rdf_syntax_ns___n_t_t_rdf:Description_pdf:Keywords__s__pdf:Producer__s__rdf:about___xmlns:pdf_http:__ns.adobe.com_pdf_1.3______n_t_t_rdf:Description_rdf:about___xmlns:pdfx_http:__ns.adobe.com_pdfx_1.3______n_t_t_rdf:Description_rdf:about___xap:CreateDate__s__xap:CreatorTool__s__xap:MetadataDate__s__xap:ModifyDate__s__xmlns:xap_http:__ns.adobe.com_xap_1.0______n_t_t_rdf:Description_dc:format_application_pdf__rdf:about___xmlns:dc_http:__purl.org_dc_elements_1.1____n_t_t_t_dc:creator__n_t_t_t_t_rdf:Seq__n_t_t_t_t_t_rdf:li__s__rdf:li__n_t_t_t_t__rdf:Seq__n_t_t_t__dc:creator__n_t_t_t_dc:description__n_t_t_t_t_rdf:Alt__n_t_t_t_t_t_rdf:li_xml:lang_x_default___s__rdf:li__n_t_t_t_t__rdf:Alt__n_t_t_t__dc:description__n_t_t_t_dc:title__n_t_t_t_t_rdf:Alt__n_t_t_t_t_t_rdf:li_xml:lang_x_default___s__rdf:li__n_t_t_t_t__rdf:Alt__n_t_t_t__dc:title__n_t_t__rdf:Description__n_t_t_rdf:Description_pdfaid:conformance__s__pdfaid:part_1__rdf:about___xmlns:pdfaid_http:__www.aiim.org_pdfa_ns_id______n_t__rdf:RDF__n__x:xmpmeta__n__xpacket_endw__
push edx
call fcn.004667e0
add esp, 0x34
lea ecx, [esp + 0x58]
call fcn.00401650
lea ecx, [esp + 0x54]
call fcn.00401650
lea ecx, [esp + 0x24]
call fcn.00401650
lea ecx, [esp + 0x18]
call fcn.00401650
lea ecx, [esp + 0x5c]
call fcn.00401650
lea ecx, [esp + 0x68]
mov byte [esp + 0x140], 0x11
call fcn.00401650
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4745d1
mov eax, dword [eax]
jmp 0x4745d3
xor eax, eax
mov ebp, dword [esp + 0x64]
push eax
mov ecx, ebp
call fcn.004baeb0
cmp dword [ebx + 0xd8], 2
jne 0x47468a
push 0
push ebx
push 0x18
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x474608
mov ecx, eax
call fcn.004b9d40
mov edi, eax
jmp 0x47460a
xor edi, edi
push 0
push ebx
push 0x14
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x474628
push 1
mov ecx, eax
call fcn.004b5a60
mov esi, eax
jmp 0x47462a
xor esi, esi
push str.Marked
lea ecx, [esp + 0x34]
call fcn.0048cd50
push esi
lea eax, [esp + 0x34]
push eax
mov ecx, edi
mov byte [esp + 0x148], 0x12
call fcn.004ba020
lea ecx, [esp + 0x30]
mov byte [esp + 0x140], 0x11
call fcn.004b36e0
push 0x5ef614
lea ecx, [esp + 0x34]
call fcn.0048cd50
push edi
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebp
mov byte [esp + 0x148], 0x13
call fcn.004ba020
lea ecx, [esp + 0x30]
call fcn.004b36e0
lea ecx, [esp + 0x50]
call fcn.00401650
lea ecx, [esp + 0x28]
call fcn.00401650
lea ecx, [esp + 0x20]
mov byte [esp + 0x140], 0
call fcn.00401650
push 0x5ef620
lea ecx, [esp + 0xb0]
call fcn.0048cd50
lea edx, [esp + 0xac]
lea edi, [ebx + 0x14]
push edx
mov ecx, edi
mov byte [esp + 0x144], 0x14
call fcn.004b7af0
cmp dword [esp + 0xc8], 0x10
mov esi, eax
mov dword [esp + 0x18], esi
mov byte [esp + 0x140], 0
mov dword [esp + 0xac], 0x5f1558
jb 0x47470b
mov eax, dword [esp + 0xb4]
push eax
call fcn.004274fc
add esp, 4
xor ebp, ebp
cmp esi, ebp
mov dword [esp + 0xc8], 0xf
mov dword [esp + 0xc4], ebp
mov byte [esp + 0xb4], 0
mov dword [esp + 0xac], 0x5f13d0
jne 0x4747ce
push ebp
push ebx
push 0x18
call fcn.004b5290
add esp, 0xc
cmp eax, ebp
je 0x474757
mov ecx, eax
call fcn.004b9d40
mov dword [esp + 0x18], eax
jmp 0x47475b
mov dword [esp + 0x18], ebp
push ebp
push ebx
push 0x10
call fcn.004b5290
add esp, 0xc
cmp eax, ebp
je 0x47477b
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, eax
call fcn.004b5410
mov esi, eax
jmp 0x47477d
xor esi, esi
push 0x5ef628
lea ecx, [esp + 0x34]
call fcn.0048cd50
push esi
lea edx, [esp + 0x34]
push edx
mov ecx, edi
mov byte [esp + 0x148], 0x15
call fcn.004ba020
cmp dword [esp + 0x4c], 0x10
mov byte [esp + 0x140], 0
mov dword [esp + 0x30], 0x5f1558
jb 0x4747c4
mov eax, dword [esp + 0x38]
push eax
call fcn.004274fc
add esp, 4
cmp dword [esp + 0x18], ebp
je 0x474a28
push 1
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.004a09c0
push ebp
push ebx
push 0x34
mov byte [esp + 0x15c], 0x16
call fcn.004b5290
mov edi, eax
add esp, 0x1c
cmp edi, ebp
je 0x474876
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x474822
cmp dword [eax + 4], ebp
lea esi, [eax + 4]
jne 0x47481e
mov ecx, dword [eax]
push ecx
call fcn.00464000
mov dword [esi], eax
mov ecx, dword [esi]
jmp 0x474824
xor ecx, ecx
mov eax, ecx
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], ebp
mov byte [esp + 0x70], 0
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x474840
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x74]
call fcn.00402f00
lea edx, [esp + 0x6c]
push edx
mov ecx, edi
mov byte [esp + 0x144], 0x17
mov dword [esp + 0x20], 1
call fcn.004b7700
mov esi, eax
jmp 0x474878
xor esi, esi
push 0x5ef630
lea ecx, [esp + 0x34]
call fcn.0048cd50
mov ecx, dword [esp + 0x18]
push esi
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x148], 0x18
call fcn.004ba020
mov esi, 0x10
cmp dword [esp + 0x4c], esi
mov dword [esp + 0x30], 0x5f1558
jb 0x4748c0
mov ecx, dword [esp + 0x38]
push ecx
call fcn.004274fc
add esp, 4
test byte [esp + 0x1c], 1
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], ebp
mov byte [esp + 0x38], 0
mov dword [esp + 0x30], 0x5f13d0
mov dword [esp + 0x140], 0x16
je 0x474906
and dword [esp + 0x1c], 0xfffffffe
cmp dword [esp + 0x84], esi
jb 0x474906
mov edx, dword [esp + 0x70]
push edx
call fcn.004274fc
add esp, 4
push ebp
push ebx
push 0x34
call fcn.004b5290
mov edi, eax
add esp, 0xc
cmp edi, ebp
je 0x474987
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x474936
cmp dword [eax + 4], ebp
lea esi, [eax + 4]
jne 0x474932
mov eax, dword [eax]
push eax
call fcn.00464000
mov dword [esi], eax
mov ecx, dword [esi]
jmp 0x474938
xor ecx, ecx
mov eax, ecx
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], ebp
mov byte [esp + 0x70], 0
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x474954
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x74]
call fcn.00402f00
or dword [esp + 0x1c], 2
lea ecx, [esp + 0x6c]
push ecx
mov ecx, edi
mov byte [esp + 0x144], 0x19
call fcn.004b7700
mov esi, eax
jmp 0x474989
xor esi, esi
push str.ModDate
lea ecx, [esp + 0x34]
call fcn.0048cd50
mov ecx, dword [esp + 0x18]
push esi
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x148], 0x1a
call fcn.004ba020
mov esi, 0x10
cmp dword [esp + 0x4c], esi
mov dword [esp + 0x30], 0x5f1558
jb 0x4749d1
mov eax, dword [esp + 0x38]
push eax
call fcn.004274fc
add esp, 4
test byte [esp + 0x1c], 2
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], ebp
mov byte [esp + 0x38], 0
mov dword [esp + 0x30], 0x5f13d0
mov dword [esp + 0x140], 0x16
je 0x474a17
and dword [esp + 0x1c], 0xfffffffd
cmp dword [esp + 0x84], esi
jb 0x474a17
mov ecx, dword [esp + 0x70]
push ecx
call fcn.004274fc
add esp, 4
lea ecx, [esp + 0x20]
mov byte [esp + 0x140], 0
call fcn.00401650
lea edx, [ebx + 0xc8]
xor edi, edi
mov ecx, ebx
mov dword [esp + 0x54], edx
mov dword [esp + 0x24], edi
call fcn.00465810
test eax, eax
jbe 0x474f1c
jmp 0x474a52
xor ebp, ebp
mov ecx, dword [ebx + 0x1d8]
cmp ecx, ebp
je 0x474f06
mov eax, dword [ebx + 0x1dc]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x474f06
test ecx, ecx
je 0x474a86
mov eax, dword [ebx + 0x1dc]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x474a8b
call fcn.0044b7ad
mov eax, dword [ebx + 0x1d8]
mov esi, dword [eax + edi*4]
test esi, esi
mov dword [esp + 0x2c], esi
je 0x474f06
push 0x5ef648
lea ecx, [esp + 0x34]
call fcn.0048cd50
push 0
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
mov byte [esp + 0x148], 0x1b
call fcn.004ba020
cmp dword [esp + 0x4c], 0x10
mov byte [esp + 0x140], 0
mov dword [esp + 0x30], 0x5f1558
jb 0x474ae8
mov edx, dword [esp + 0x38]
push edx
call fcn.004274fc
add esp, 4
mov ecx, esi
call fcn.00493f60
test eax, eax
je 0x474af7
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
cmp byte [eax], 0
je 0x474f06
push 1
mov ecx, esi
call fcn.00499820
mov esi, eax
test esi, esi
mov dword [esp + 0x58], esi
je 0x474f06
mov edx, dword [esi + 4]
lea ecx, [esp + 0x18]
push ecx
xor edi, edi
push edx
mov dword [esp + 0x20], edi
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, edi
je 0x474b36
mov dword [esi + 8], eax
mov ecx, dword [esi + 4]
lea eax, [esp + 0x28]
push eax
push ecx
mov dword [esp + 0x30], edi
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, edi
je 0x474b4f
mov dword [esi + 8], eax
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
mov eax, esi
imul eax, ebx
lea edi, [eax + eax*2]
push edi
mov dword [esp + 0x60], edi
call fcn.00427501
add esp, 4
test eax, eax
mov dword [esp + 0x50], eax
je 0x474efe
xor ebp, ebp
test esi, esi
jle 0x474bfd
lea edx, [ebx + ebx*2]
add eax, 2
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], eax
lea esp, [esp]
xor edi, edi
cmp dword [esp + 0x18], edi
jle 0x474be8
mov esi, dword [esp + 0x20]
lea esp, [esp]
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 4]
lea ecx, [esp + 0x64]
push ecx
push ebp
push edi
push eax
mov ebx, 0xff000000
call sub.gdiplus.dll_GdipBitmapGetPixel
test eax, eax
je 0x474bc6
mov ecx, dword [esp + 0x58]
mov dword [ecx + 8], eax
jmp 0x474bca
mov ebx, dword [esp + 0x64]
mov edx, ebx
mov eax, ebx
shr edx, 0x10
shr eax, 8
mov byte [esi - 2], dl
mov byte [esi - 1], al
mov byte [esi], bl
add edi, 1
add esi, 3
cmp edi, dword [esp + 0x18]
jl 0x474ba0
mov ecx, dword [esp + 0x68]
add dword [esp + 0x20], ecx
add ebp, 1
cmp ebp, dword [esp + 0x28]
jl 0x474b90
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
push 0
push ebx
push 0x50
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x474c1f
push 1
mov ecx, eax
call fcn.004b9dd0
mov esi, eax
jmp 0x474c21
xor esi, esi
mov ecx, dword [esp + 0x50]
mov edx, dword [esi + 0x10]
mov edx, dword [edx + 0x10]
push 0
lea eax, [esi + 0x10]
push edi
push ecx
push eax
call edx
push 0
push ebx
push 0x20
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x474c5b
fild dword [esp + 0x18]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov edi, eax
jmp 0x474c5d
xor edi, edi
push 0x5ef650
lea ecx, [esp + 0x34]
call fcn.0048cd50
push edi
lea eax, [esp + 0x34]
push eax
push 1
mov ecx, esi
mov byte [esp + 0x14c], 0x1c
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
mov ebp, 0x10
cmp dword [esp + 0x4c], ebp
mov byte [esp + 0x140], 0
mov dword [esp + 0x30], 0x5f1558
jb 0x474cb1
mov ecx, dword [esp + 0x38]
push ecx
call fcn.004274fc
add esp, 4
push 0
push ebx
push 0x20
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x474cd7
fild dword [esp + 0x28]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov edi, eax
jmp 0x474cd9
xor edi, edi
push 0x5ef658
lea ecx, [esp + 0x34]
call fcn.0048cd50
push edi
lea edx, [esp + 0x34]
push edx
push 1
mov ecx, esi
mov byte [esp + 0x14c], 0x1d
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
cmp dword [esp + 0x4c], ebp
mov byte [esp + 0x140], 0
mov dword [esp + 0x30], 0x5f1558
jb 0x474d28
mov eax, dword [esp + 0x38]
push eax
call fcn.004274fc
add esp, 4
push 0
push ebx
push 0x2c
call fcn.004b5290
mov edi, eax
add esp, 0xc
test edi, edi
je 0x474d83
push 9
push 0x5ef660
lea ecx, [esp + 0x74]
mov dword [esp + 0x8c], 0xf
mov dword [esp + 0x88], 0
mov byte [esp + 0x78], 0
call fcn.00402f00
or dword [esp + 0x1c], 4
lea ecx, [esp + 0x6c]
push ecx
mov ecx, edi
mov byte [esp + 0x144], 0x1e
call fcn.004b7280
mov edi, eax
jmp 0x474d85
xor edi, edi
push 0x5ef66c
lea ecx, [esp + 0x34]
call fcn.0048cd50
push edi
lea edx, [esp + 0x34]
push edx
push 1
mov ecx, esi
mov dword [esp + 0x14c], 0x1f
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
cmp dword [esp + 0x4c], ebp
mov dword [esp + 0x30], 0x5f1558
jb 0x474dcf
mov eax, dword [esp + 0x38]
push eax
call fcn.004274fc
add esp, 4
xor edi, edi
test byte [esp + 0x1c], 4
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], edi
mov byte [esp + 0x38], 0
mov dword [esp + 0x30], 0x5f13d0
mov dword [esp + 0x140], edi
je 0x474e13
and dword [esp + 0x1c], 0xfffffffb
cmp dword [esp + 0x84], ebp
jb 0x474e13
mov ecx, dword [esp + 0x70]
push ecx
call fcn.004274fc
add esp, 4
push edi
push ebx
push 0x20
call fcn.004b5290
add esp, 0xc
cmp eax, edi
je 0x474e3a
fld qword [0x5f1800]
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.004b5b20
mov edi, eax
jmp 0x474e3c
xor edi, edi
push 0x5ef678
lea ecx, [esp + 0x34]
call fcn.0048cd50
push edi
lea edx, [esp + 0x34]
push edx
push 1
mov ecx, esi
mov byte [esp + 0x14c], 0x20
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
cmp dword [esp + 0x4c], ebp
mov byte [esp + 0x140], 0
mov dword [esp + 0x30], 0x5f1558
jb 0x474e8b
mov eax, dword [esp + 0x38]
push eax
call fcn.004274fc
add esp, 4
push 0
push ebx
push ebp
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x474ea7
push esi
mov ecx, eax
call fcn.004b5410
mov esi, eax
jmp 0x474ea9
xor esi, esi
push 0x5ef68c
lea ecx, [esp + 0x34]
call fcn.0048cd50
push esi
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x148], 0x21
call fcn.004ba020
cmp dword [esp + 0x4c], ebp
mov byte [esp + 0x140], 0
mov dword [esp + 0x30], 0x5f1558
jb 0x474ef1
mov edx, dword [esp + 0x38]
push edx
call fcn.004274fc
add esp, 4
mov eax, dword [esp + 0x50]
push eax
call fcn.004274fc
add esp, 4
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x60]
add edi, 1
mov ecx, ebx
mov dword [esp + 0x24], edi
call fcn.00465810
cmp edi, eax
jb 0x474a50
lea ecx, [esp + 0xcc]
call fcn.00401310
mov ecx, dword [esp + 0x138]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret