Function at 0x403530
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41b81b
mov eax, dword fs:[0]
push eax
sub esp, 0x5f4
mov eax, dword [0x42400c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x600], eax
mov eax, dword fs:[0x2c]
mov esi, dword [eax]
mov eax, dword [0x4702ec]
cmp eax, dword [esi + 4]
jle 0x4037fe
push 0x4702ec
call fcn.0041a670
add esp, 4
cmp dword [0x4702ec], 0xffffffff
jne 0x4037fe
push 5
mov dword [0x4702f0], 0
mov ecx, 0x4702f0
push 0x41dad8
mov dword [0x470300], 0
mov dword [0x470304], 0xf
mov byte [0x4702f0], 0
call fcn.00418240
mov dword [ebp - 4], 0
mov ecx, 0x470308
push 3
mov dword [0x470308], 0
push 0x41dae0
mov dword [0x470318], 0
mov dword [0x47031c], 0xf
mov byte [0x470308], 0
call fcn.00418240
mov byte [ebp - 4], 1
mov ecx, 0x470320
push 5
mov dword [0x470320], 0
push 0x41dae4
mov dword [0x470330], 0
mov dword [0x470334], 0xf
mov byte [0x470320], 0
call fcn.00418240
mov byte [ebp - 4], 2
mov ecx, 0x470338
push 5
mov dword [0x470338], 0
push 0x41daec
mov dword [0x470348], 0
mov dword [0x47034c], 0xf
mov byte [0x470338], 0
call fcn.00418240
mov byte [ebp - 4], 3
mov ecx, 0x470350
push 7
mov dword [0x470350], 0
push 0x41daf4
mov dword [0x470360], 0
mov dword [0x470364], 0xf
mov byte [0x470350], 0
call fcn.00418240
mov byte [ebp - 4], 4
mov ecx, 0x470368
push 4
mov dword [0x470368], 0
push 0x41dafc
mov dword [0x470378], 0
mov dword [0x47037c], 0xf
mov byte [0x470368], 0
call fcn.00418240
mov byte [ebp - 4], 5
mov ecx, 0x470380
push 3
mov dword [0x470380], 0
push 0x41db04
mov dword [0x470390], 0
mov dword [0x470394], 0xf
mov byte [0x470380], 0
call fcn.00418240
mov byte [ebp - 4], 6
mov ecx, 0x470398
push 7
mov dword [0x470398], 0
push 0x41db08
mov dword [0x4703a8], 0
mov dword [0x4703ac], 0xf
mov byte [0x470398], 0
call fcn.00418240
mov byte [ebp - 4], 7
mov dword [0x4703b0], 0
push 6
push 0x41db10
mov ecx, 0x4703b0
mov dword [0x4703c0], 0
mov dword [0x4703c4], 0xf
mov byte [0x4703b0], 0
call fcn.00418240
mov byte [ebp - 4], 8
mov ecx, 0x4703c8
push 6
mov dword [0x4703c8], 0
push 0x41db18
mov dword [0x4703d8], 0
mov dword [0x4703dc], 0xf
mov byte [0x4703c8], 0
call fcn.00418240
push 0x41c560
mov dword [ebp - 4], 0xffffffff
call fcn.0041a982
add esp, 4
push 0x4702ec
call fcn.0041a626
add esp, 4
mov eax, dword [0x4703e0]
cmp eax, dword [esi + 4]
jle 0x403a8d
push 0x4703e0
call fcn.0041a670
add esp, 4
cmp dword [0x4703e0], 0xffffffff
jne 0x403a8d
push 4
mov dword [0x4703e8], 0
mov ecx, 0x4703e8
push 0x41db20
mov dword [0x4703f8], 0
mov dword [0x4703fc], 0xf
mov byte [0x4703e8], 0
call fcn.00418240
mov dword [ebp - 4], 9
mov ecx, 0x470400
push 3
mov dword [0x470400], 0
push 0x41db28
mov dword [0x470410], 0
mov dword [0x470414], 0xf
mov byte [0x470400], 0
call fcn.00418240
mov byte [ebp - 4], 0xa
mov ecx, 0x470418
push 7
mov dword [0x470418], 0
push 0x41db2c
mov dword [0x470428], 0
mov dword [0x47042c], 0xf
mov byte [0x470418], 0
call fcn.00418240
mov byte [ebp - 4], 0xb
mov ecx, 0x470430
push 7
mov dword [0x470430], 0
push 0x41db34
mov dword [0x470440], 0
mov dword [0x470444], 0xf
mov byte [0x470430], 0
call fcn.00418240
mov byte [ebp - 4], 0xc
mov ecx, 0x470448
push 0xd
mov dword [0x470448], 0
push 0x41db3c
mov dword [0x470458], 0
mov dword [0x47045c], 0xf
mov byte [0x470448], 0
call fcn.00418240
mov byte [ebp - 4], 0xd
mov ecx, 0x470460
push 0xa
mov dword [0x470460], 0
push 0x41db4c
mov dword [0x470470], 0
mov dword [0x470474], 0xf
mov byte [0x470460], 0
call fcn.00418240
mov byte [ebp - 4], 0xe
mov ecx, 0x470478
push 9
mov dword [0x470478], 0
push 0x41db58
mov dword [0x470488], 0
mov dword [0x47048c], 0xf
mov byte [0x470478], 0
call fcn.00418240
mov byte [ebp - 4], 0xf
mov ecx, 0x470490
push 0xc
mov dword [0x470490], 0
push 0x41db64
mov dword [0x4704a0], 0
mov dword [0x4704a4], 0xf
mov byte [0x470490], 0
call fcn.00418240
mov byte [ebp - 4], 0x10
mov dword [0x4704a8], 0
push 0xb
push 0x41db74
mov ecx, 0x4704a8
mov dword [0x4704b8], 0
mov dword [0x4704bc], 0xf
mov byte [0x4704a8], 0
call fcn.00418240
mov byte [ebp - 4], 0x11
mov ecx, 0x4704c0
push 0xc
mov dword [0x4704c0], 0
push 0x41db80
mov dword [0x4704d0], 0
mov dword [0x4704d4], 0xf
mov byte [0x4704c0], 0
call fcn.00418240
push 0x41c540
mov dword [ebp - 4], 0xffffffff
call fcn.0041a982
add esp, 4
push 0x4703e0
call fcn.0041a626
add esp, 4
mov eax, dword [0x4704d8]
cmp eax, dword [esi + 4]
jle 0x403d56
push 0x4704d8
call fcn.0041a670
add esp, 4
cmp dword [0x4704d8], 0xffffffff
jne 0x403d56
push 5
mov dword [0x4704e0], 0
mov ecx, 0x4704e0
push 0x41dad8
mov dword [0x4704f0], 0
mov dword [0x4704f4], 0xf
mov byte [0x4704e0], 0
call fcn.00418240
mov dword [ebp - 4], 0x12
mov ecx, 0x4704f8
push 5
mov dword [0x4704f8], 0
push 0x41db90
mov dword [0x470508], 0
mov dword [0x47050c], 0xf
mov byte [0x4704f8], 0
call fcn.00418240
mov byte [ebp - 4], 0x13
mov ecx, 0x470510
push 4
mov dword [0x470510], 0
push 0x41db98
mov dword [0x470520], 0
mov dword [0x470524], 0xf
mov byte [0x470510], 0
call fcn.00418240
mov byte [ebp - 4], 0x14
mov ecx, 0x470528
push 4
mov dword [0x470528], 0
push 0x41dba0
mov dword [0x470538], 0
mov dword [0x47053c], 0xf
mov byte [0x470528], 0
call fcn.00418240
mov byte [ebp - 4], 0x15
mov ecx, 0x470540
push 7
mov dword [0x470540], 0
push 0x41dba8
mov dword [0x470550], 0
mov dword [0x470554], 0xf
mov byte [0x470540], 0
call fcn.00418240
mov byte [ebp - 4], 0x16
mov ecx, 0x470558
push 3
mov dword [0x470558], 0
push 0x41dbb0
mov dword [0x470568], 0
mov dword [0x47056c], 0xf
mov byte [0x470558], 0
call fcn.00418240
mov byte [ebp - 4], 0x17
mov ecx, 0x470570
push 4
mov dword [0x470570], 0
push 0x41dbb4
mov dword [0x470580], 0
mov dword [0x470584], 0xf
mov byte [0x470570], 0
call fcn.00418240
mov byte [ebp - 4], 0x18
mov ecx, 0x470588
push 6
mov dword [0x470588], 0
push 0x41dbbc
mov dword [0x470598], 0
mov dword [0x47059c], 0xf
mov byte [0x470588], 0
call fcn.00418240
mov byte [ebp - 4], 0x19
mov dword [0x4705a0], 0
push 5
push 0x41dbc4
mov ecx, 0x4705a0
mov dword [0x4705b0], 0
mov dword [0x4705b4], 0xf
mov byte [0x4705a0], 0
call fcn.00418240
mov byte [ebp - 4], 0x1a
mov ecx, 0x4705b8
push 6
mov dword [0x4705b8], 0
push 0x41dbcc
mov dword [0x4705c8], 0
mov dword [0x4705cc], 0xf
mov byte [0x4705b8], 0
call fcn.00418240
mov byte [ebp - 4], 0x1b
mov ecx, 0x4705d0
push 6
mov dword [0x4705d0], 0
push 0x41dbd4
mov dword [0x4705e0], 0
mov dword [0x4705e4], 0xf
mov byte [0x4705d0], 0
call fcn.00418240
push 0x41c520
mov dword [ebp - 4], 0xffffffff
call fcn.0041a982
add esp, 4
push 0x4704d8
call fcn.0041a626
add esp, 4
mov eax, dword [0x4705e8]
cmp eax, dword [esi + 4]
jle 0x404222
push 0x4705e8
call fcn.0041a670
add esp, 4
cmp dword [0x4705e8], 0xffffffff
jne 0x404222
push 4
mov dword [0x4705f0], 0
mov ecx, 0x4705f0
push 0x41db20
mov dword [0x470600], 0
mov dword [0x470604], 0xf
mov byte [0x4705f0], 0
call fcn.00418240
mov dword [ebp - 4], 0x1c
mov ecx, 0x470608
push 4
mov dword [0x470608], 0
push 0x41dbdc
mov dword [0x470618], 0
mov dword [0x47061c], 0xf
mov byte [0x470608], 0
call fcn.00418240
mov byte [ebp - 4], 0x1d
mov ecx, 0x470620
push 3
mov dword [0x470620], 0
push 0x41dbe4
mov dword [0x470630], 0
mov dword [0x470634], 0xf
mov byte [0x470620], 0
call fcn.00418240
mov byte [ebp - 4], 0x1e
mov ecx, 0x470638
push 3
mov dword [0x470638], 0
push 0x41dbe8
mov dword [0x470648], 0
mov dword [0x47064c], 0xf
mov byte [0x470638], 0
call fcn.00418240
mov byte [ebp - 4], 0x1f
mov ecx, 0x470650
push 6
mov dword [0x470650], 0
push 0x41dbec
mov dword [0x470660], 0
mov dword [0x470664], 0xf
mov byte [0x470650], 0
call fcn.00418240
mov byte [ebp - 4], 0x20
mov ecx, 0x470668
push 3
mov dword [0x470668], 0
push 0x41dbb0
mov dword [0x470678], 0
mov dword [0x47067c], 0xf
mov byte [0x470668], 0
call fcn.00418240
mov byte [ebp - 4], 0x21
mov ecx, 0x470680
push 4
mov dword [0x470680], 0
push 0x41dbb4
mov dword [0x470690], 0
mov dword [0x470694], 0xf
mov byte [0x470680], 0
call fcn.00418240
mov byte [ebp - 4], 0x22
mov ecx, 0x470698
push 5
mov dword [0x470698], 0
push 0x41dbf4
mov dword [0x4706a8], 0
mov dword [0x4706ac], 0xf
mov byte [0x470698], 0
call fcn.00418240
mov byte [ebp - 4], 0x23
mov dword [0x4706b0], 0
push 4
push 0x41dbfc
mov ecx, 0x4706b0
mov dword [0x4706c0], 0
mov dword [0x4706c4], 0xf
mov byte [0x4706b0], 0
call fcn.00418240
mov byte [ebp - 4], 0x24
mov ecx, 0x4706c8
push 5
mov dword [0x4706c8], 0
push 0x41dc04
mov dword [0x4706d8], 0
mov dword [0x4706dc], 0xf
mov byte [0x4706c8], 0
call fcn.00418240
mov byte [ebp - 4], 0x25
mov ecx, 0x4706e0
push 5
mov dword [0x4706e0], 0
push 0x41dc0c
mov dword [0x4706f0], 0
mov dword [0x4706f4], 0xf
mov byte [0x4706e0], 0
call fcn.00418240
mov byte [ebp - 4], 0x26
mov ecx, 0x4706f8
push 7
mov dword [0x4706f8], 0
push 0x41dc14
mov dword [0x470708], 0
mov dword [0x47070c], 0xf
mov byte [0x4706f8], 0
call fcn.00418240
mov byte [ebp - 4], 0x27
mov ecx, 0x470710
push 7
mov dword [0x470710], 0
push 0x41dc1c
mov dword [0x470720], 0
mov dword [0x470724], 0xf
mov byte [0x470710], 0
call fcn.00418240
mov byte [ebp - 4], 0x28
mov ecx, 0x470728
push 7
mov dword [0x470728], 0
push 0x41dc24
mov dword [0x470738], 0
mov dword [0x47073c], 0xf
mov byte [0x470728], 0
call fcn.00418240
mov byte [ebp - 4], 0x29
mov ecx, 0x470740
push 0xa
mov dword [0x470740], 0
push 0x41dc2c
mov dword [0x470750], 0
mov dword [0x470754], 0xf
mov byte [0x470740], 0
call fcn.00418240
mov byte [ebp - 4], 0x2a
mov ecx, 0x470758
push 7
mov dword [0x470758], 0
push 0x41dc38
mov dword [0x470768], 0
mov dword [0x47076c], 0xf
mov byte [0x470758], 0
call fcn.00418240
mov byte [ebp - 4], 0x2b
mov dword [0x470770], 0
mov dword [0x470780], 0
push 8
push 0x41dc40
mov ecx, 0x470770
mov dword [0x470784], 0xf
mov byte [0x470770], 0
call fcn.00418240
mov byte [ebp - 4], 0x2c
mov ecx, 0x470788
push 9
mov dword [0x470788], 0
push 0x41dc4c
mov dword [0x470798], 0
mov dword [0x47079c], 0xf
mov byte [0x470788], 0
call fcn.00418240
mov byte [ebp - 4], 0x2d
mov ecx, 0x4707a0
push 8
mov dword [0x4707a0], 0
push 0x41dc58
mov dword [0x4707b0], 0
mov dword [0x4707b4], 0xf
mov byte [0x4707a0], 0
call fcn.00418240
mov byte [ebp - 4], 0x2e
mov ecx, 0x4707b8
push 9
mov dword [0x4707b8], 0
push 0x41dc64
mov dword [0x4707c8], 0
mov dword [0x4707cc], 0xf
mov byte [0x4707b8], 0
call fcn.00418240
push 0x41c500
call fcn.0041a982
add esp, 4
push 0x4705e8
call fcn.0041a626
add esp, 4
mov esi, dword [ebp + 8]
mov eax, 0x41dc70
test esi, esi
mov ecx, 0x41dc7c
cmovs ecx, eax
lea eax, [ebp - 0x210]
push ecx
push eax
call fcn.004016a0
mov eax, esi
add esp, 8
cdq
mov ebx, eax
xor eax, eax
xor ebx, edx
mov dword [ebp - 0x5fc], eax
sub ebx, edx
cmp ebx, 0xa
jle 0x40454c
nop
cmp ebx, 0x14
jb 0x4047a3
cmp ebx, 0x64
jae 0x404306
mov eax, 0xcccccccd
mul ebx
shr edx, 3
mov eax, edx
neg eax
shl eax, 2
sub eax, edx
lea ebx, [ebx + eax*2]
lea eax, [edx + edx*2]
lea eax, [eax*8 + 0x4702f0]
cmp ebx, 5
jge 0x4042b6
cmp dword [eax + 0x14], 0x10
jb 0x40429f
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x110]
push 0x41dc90
push eax
call fcn.004016a0
add esp, 0xc
jmp 0x4042dc
cmp dword [eax + 0x14], 0x10
jb 0x4042be
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x110]
push 0x41dc98
push eax
call fcn.004016a0
add esp, 0xc
cmp ebx, 0x14
jge 0x404501
test ebx, ebx
je 0x404501
lea edi, [ebp - 0x110]
dec edi
nop dword [eax + eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x4042f0
mov eax, dword [0x41dca0]
mov dword [edi], eax
jmp 0x404501
cmp ebx, 0x3e8
jae 0x404376
mov eax, 0x51eb851f
mul ebx
shr edx, 5
imul eax, edx, 0xffffff9c
add ebx, eax
lea eax, [edx + edx*2]
cmp dword [eax*8 + 0x4703fc], 0x10
lea eax, [eax*8 + 0x4703e8]
jb 0x404333
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x110]
push 0x41dab8
push eax
call fcn.004016a0
add esp, 0xc
cmp ebx, 0x14
jge 0x404501
test ebx, ebx
je 0x404501
lea edi, [ebp - 0x110]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x404360
mov eax, dword [0x41dca0]
mov dword [edi], eax
jmp 0x404501
cmp ebx, 0x2710
jae 0x404433
mov eax, 0x10624dd3
mov esi, ebx
mul ebx
mov eax, 0x51eb851f
mov ecx, edx
mul ebx
shr ecx, 6
shr edx, 5
imul eax, edx, 0x64
sub esi, eax
imul eax, ecx, 0xfffffc18
add ebx, eax
cmp ecx, 1
je 0x40441a
lea eax, [ecx + ecx*2]
lea ecx, [eax*8 + 0x4704e0]
test ebx, ebx
je 0x4045a4
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
sub esi, eax
jne 0x4043f8
cmp dword [ecx + 0x14], 0x10
jb 0x4043de
mov ecx, dword [ecx]
push ecx
lea eax, [ebp - 0x110]
push 0x41dcc0
push eax
call fcn.004016a0
add esp, 0xc
jmp 0x404501
cmp dword [ecx + 0x14], 0x10
jb 0x404400
mov ecx, dword [ecx]
push ecx
lea eax, [ebp - 0x110]
push 0x41dcc0
push eax
call fcn.004016a0
add esp, 0xc
jmp 0x404501
lea eax, [ebp - 0x110]
push 0x41dca4
push eax
call fcn.004016a0
add esp, 8
jmp 0x404501
cmp ebx, 0x186a0
jae 0x40468f
mov eax, 0x10624dd3
mul ebx
mov esi, edx
shr esi, 6
cmp ebx, 0x4e20
jae 0x404490
lea eax, [esi - 0xb]
cmp eax, 8
ja 0x404486
lea eax, [esi + esi*2]
cmp dword [eax*8 + 0x470604], 0x10
lea eax, [eax*8 + 0x4705f0]
jb 0x404471
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x110]
push 0x41dcd0
push eax
call fcn.004016a0
add esp, 0xc
imul eax, esi, 0xfffffc18
add ebx, eax
jmp 0x404501
mov eax, 0xd1b71759
mov ecx, ebx
mul ebx
mov edi, edx
shr edi, 0xd
imul eax, edi, 0x2710
sub ecx, eax
mov eax, 0x10624dd3
imul ecx
imul eax, esi, 0xfffffc18
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add ebx, eax
lea eax, [ecx + ecx*2]
cmp dword [eax*8 + 0x4704f4], 0x10
lea ecx, [eax*8 + 0x4704e0]
jb 0x4044d5
mov ecx, dword [ecx]
lea eax, [edi + edi*2]
cmp dword [eax*8 + 0x470304], 0x10
lea eax, [eax*8 + 0x4702f0]
jb 0x4044eb
mov eax, dword [eax]
push ecx
push eax
lea eax, [ebp - 0x110]
push 0x41dce0
push eax
call fcn.004016a0
add esp, 0x10
lea edx, [ebp - 0x110]
mov esi, edx
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x404510
lea edi, [ebp - 0x210]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x404520
mov eax, dword [ebp - 0x5fc]
mov ecx, edx
shr ecx, 2
inc eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [ebp - 0x5fc], eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp ebx, 0xa
jg 0x404260
test ebx, ebx
je 0x4045fd
lea eax, [ebx + ebx*2]
cmp dword [eax*8 + 0x470604], 0x10
lea eax, [eax*8 + 0x4705f0]
jb 0x40456a
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x110]
push 0x41dc80
push eax
call fcn.004016a0
lea edx, [ebp - 0x110]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x404587
lea edi, [ebp - 0x210]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x404597
jmp 0x404649
cmp dword [ecx + 0x14], 0x10
jb 0x4045ac
mov ecx, dword [ecx]
push ecx
lea eax, [ebp - 0x110]
push 0x41dcb0
push eax
call fcn.004016a0
lea edx, [ebp - 0x110]
add esp, 0xc
mov esi, edx
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x4045d0
lea edi, [ebp - 0x210]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4045e0
mov eax, dword [ebp - 0x5fc]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
inc eax
rep movsb byte es:[edi], byte [esi]
test eax, eax
jne 0x404657
cmp dword [0x470604], 0x10
mov eax, 0x4705f0
cmovae eax, dword [0x4705f0]
push eax
lea eax, [ebp - 0x110]
push 0x41dc80
push eax
call fcn.004016a0
lea edx, [ebp - 0x110]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x404631
lea edi, [ebp - 0x210]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x404641
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x210]
push eax
push 0x41dab8
push dword [ebp - 0x600]
call fcn.004016a0
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041a150
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp - 0x210]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x404696
mov eax, dword [0x41dcf4]
mov dword [ecx], eax
mov eax, dword [0x41dcf8]
mov dword [ecx + 4], eax
mov eax, dword [str._..]
mov dword [ecx + 8], eax
mov al, byte [0x41dd00]
push ebx
mov byte [ecx + 0xc], al
lea eax, [ebp - 0x5f8]
push 0x41dd04
push eax
call fcn.004016a0
add esp, 0xc
lea ebx, [ebp - 0x5f8]
xor ecx, ecx
lea edx, [ebx + 1]
mov dword [ebp - 0x5fc], ecx
mov al, byte [ebx]
inc ebx
test al, al
jne 0x4046e5
sub ebx, edx
je 0x40477c
mov esi, 0xa
nop dword [eax]
movsx eax, byte [ebp + ecx - 0x5f8]
sub eax, 0x30
cdq
idiv esi
lea eax, [edx + edx*2]
cmp dword [eax*8 + 0x4704f4], 0x10
lea edx, [eax*8 + 0x4704e0]
jb 0x404724
mov edx, dword [edx]
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x404726
lea edi, [ebp - 0x210]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x404736
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x210]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x404753
mov ecx, dword [ebp - 0x5fc]
mov esi, 0xa
mov ax, word [0x41dc7c]
inc ecx
mov word [edi], ax
mov dword [ebp - 0x5fc], ecx
cmp ecx, ebx
jb 0x404700
lea ecx, [ebp - 0x210]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x404783
mov ax, word [0x41dd08]
mov word [ecx], ax
mov al, byte [0x41dd0a]
mov byte [ecx + 2], al
jmp 0x404657
lea eax, [ebx + ebx*2]
cmp dword [eax*8 + 0x470604], 0x10
lea eax, [eax*8 + 0x4705f0]
jb 0x4047b9
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x110]
push 0x41dc88
push eax
call fcn.004016a0
lea edx, [ebp - 0x110]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x4047d6
lea edi, [ebp - 0x210]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4047e6
jmp 0x404649