Function at 0x512610
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3a4
mov eax, dword [0x5c0290]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x160], ecx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x1e4], 0x37456946
mov dword [ebp - 0x1e0], 0x74777749
mov dword [ebp - 0x1dc], 0x684e6e4a
mov dword [ebp - 0x1d8], 0x6f4d4163
mov dword [ebp - 0x1d4], 0x376f694f
mov dword [ebp - 0x1d0], 0x6c394349
mov dword [ebp - 0x1cc], 0x6a456a45
mov dword [ebp - 0x1c8], 0x3663524b
mov dword [ebp - 0x1c4], 0x4145434a
mov dword [ebp - 0x1c0], 0x346f6a43
mov dword [ebp - 0x1bc], 0x44776a44
mov dword [ebp - 0x1b8], 0x67516746
mov dword [ebp - 0x1b4], 0x76733248
mov dword [ebp - 0x1b0], 0x53346e42
mov dword [ebp - 0x1ac], 0x65736766
mov dword [ebp - 0x1a8], 0x77396746
mov dword [ebp - 0x1a4], 0x48595345
mov dword [ebp - 0x1a0], 0x3938684e
mov dword [ebp - 0x19c], 0x4845574f
mov dword [ebp - 0x198], 0x6a63414b
mov dword [ebp - 0x194], 0x6a706a4c
mov dword [ebp - 0x190], 0x35527a47
mov dword [ebp - 0x18c], 0x76387a49
mov dword [ebp - 0x188], 0x66554247
mov dword [ebp - 0x184], 0x4f777a44
mov dword [ebp - 0x180], 0x4f6f484c
mov dword [ebp - 0x17c], 0x3173514b
mov dword [ebp - 0x178], 0x31777945
mov dword [ebp - 0x174], 0x7238544a
mov dword [ebp - 0x170], 0x586f6763
mov dword [ebp - 0x16c], 0x41636d45
mov dword [ebp - 0x168], 0x41414141
mov word [ebp - 0x164], 0x4152
mov dword [ebp - 0x140], 0x686b5446
mov dword [ebp - 0x13c], 0x7651434e
mov dword [ebp - 0x138], 0x69497a42
mov dword [ebp - 0x134], 0x6a45534d
mov dword [ebp - 0x130], 0x2f784250
mov dword [ebp - 0x12c], 0x68514343
mov dword [ebp - 0x128], 0x7541424a
mov dword [ebp - 0x124], 0x50777948
mov dword [ebp - 0x120], 0x6968574c
mov dword [ebp - 0x11c], 0x42635144
mov dword [ebp - 0x118], 0x68495344
mov dword [ebp - 0x114], 0x55385348
mov dword [ebp - 0x110], 0x6f41324c
mov dword [ebp - 0x10c], 0x43633342
mov dword [ebp - 0x108], 0x4e30684f
mov dword [ebp - 0x104], 0x79357946
mov dword [ebp - 0x100], 0x50556a41
mov dword [ebp - 0xfc], 0x6e527961
mov dword [ebp - 0xf8], 0x37386865
mov dword [ebp - 0xf4], 0x62457941
mov dword [ebp - 0xf0], 0x48594744
mov dword [ebp - 0xec], 0x62515342
mov dword [ebp - 0xe8], 0x75737a48
mov dword [ebp - 0xe4], 0x5334674b
mov dword [ebp - 0xe0], 0x6959534f
mov dword [ebp - 0xdc], 0x4d675449
mov dword [ebp - 0xd8], 0x45596e43
mov dword [ebp - 0xd4], 0x33516d43
mov dword [ebp - 0xd0], 0x2b305763
mov dword [ebp - 0xcc], 0x776b544c
mov dword [ebp - 0xc8], 0x42456d4b
mov dword [ebp - 0xc4], 0x52556a4b
mov dword [ebp - 0xc0], 0x72416763
mov dword [ebp - 0xbc], 0x31525849
mov dword [ebp - 0xb8], 0x68496d64
mov dword [ebp - 0xb4], 0x33685250
mov dword [ebp - 0xb0], 0x4e38674a
mov dword [ebp - 0xac], 0x45497950
mov dword [ebp - 0xa8], 0x316b794a
mov dword [ebp - 0xa4], 0x6c596763
mov dword [ebp - 0xa0], 0x6a4a5366
mov dword [ebp - 0x9c], 0x4e51695a
sub esp, 0xc
mov dword [ebp - 0x98], 0x46307a50
mov ecx, esp
mov dword [ebp - 0x94], 0x75736d48
lea eax, [ebp - 0x162]
mov dword [ebp - 0x90], 0x37567959
mov dword [ebp - 0x8c], 0x44304841
push dword [ebp - 0x15c]
mov dword [ebp - 0x88], 0x34524343
push eax
lea eax, [ebp - 0x1e4]
mov dword [ebp - 0x84], 0x79557a44
mov dword [ebp - 0x80], 0x6c417750
mov dword [ebp - 0x7c], 0x48557764
mov dword [ebp - 0x78], 0x4d4d3264
mov dword [ebp - 0x74], 0x69557849
mov dword [ebp - 0x70], 0x39636963
mov dword [ebp - 0x6c], 0x78417748
mov dword [ebp - 0x68], 0x36496d48
mov dword [ebp - 0x64], 0x58387a4a
mov dword [ebp - 0x60], 0x38787847
mov dword [ebp - 0x5c], 0x386b424b
mov dword [ebp - 0x58], 0x4c517a65
mov dword [ebp - 0x54], 0x346f4147
mov dword [ebp - 0x50], 0x6863524b
mov dword [ebp - 0x4c], 0x5a675445
mov dword [ebp - 0x48], 0x72597745
mov dword [ebp - 0x44], 0x70304161
mov dword [ebp - 0x40], 0x6963424a
mov dword [ebp - 0x3c], 0x516b7943
mov dword [ebp - 0x38], 0x4130544c
mov dword [ebp - 0x34], 0x37434141
push eax
push 0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
call fcn.004660a0
lea eax, [ebp - 0x398]
push eax
call fcn.0047fb90
add esp, 0x10
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], esi
sub eax, esi
je 0x513904
sub esp, 0xc
lea eax, [ebp - 0x30]
mov ecx, esp
push dword [ebp - 0x15c]
mov dword [ecx], 0
push eax
lea eax, [ebp - 0x140]
mov dword [ecx + 4], 0
push eax
push 0
mov dword [ecx + 8], 0
call fcn.004660a0
lea eax, [ebp - 0x2c]
push eax
call fcn.0047fb90
add esp, 0x10
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
je 0x51390e
xor eax, eax
xor edi, edi
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov dword [ebp - 0x1c], eax
xor edx, edx
mov dword [ebp - 0x18], eax
xor ebx, ebx
lea eax, [esi + 1]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x30], eax
lea ebx, [ebx]
mov al, byte [esi]
inc esi
test al, al
jne 0x512ab0
sub esi, dword [ebp - 0x30]
je 0x512bb6
mov esi, dword [ebp - 0x14]
lea eax, [ebp - 0xb]
mov bl, byte [ebx + esi]
xor bl, 0x8b
mov byte [ebp - 0xb], bl
cmp eax, ecx
jae 0x512b33
cmp edi, eax
ja 0x512b33
mov ebx, eax
sub ebx, edi
cmp ecx, edx
jne 0x512b28
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x512b28
mov eax, edi
sub eax, ecx
dec eax
cmp eax, 1
jb 0x513918
sub edx, edi
or eax, 0xffffffff
mov esi, edx
sub ecx, edi
shr esi, 1
inc ecx
sub eax, esi
cmp eax, edx
jae 0x512b0c
xor edx, edx
jmp 0x512b0e
add edx, esi
cmp edx, ecx
cmovb edx, ecx
lea ecx, [ebp - 0x20]
push edx
call fcn.0046ae20
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x14]
test ecx, ecx
je 0x512b86
mov al, byte [edi + ebx]
mov byte [ecx], al
jmp 0x512b86
cmp ecx, edx
jne 0x512b80
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x512b80
mov eax, edi
sub eax, ecx
dec eax
cmp eax, 1
jb 0x513918
sub edx, edi
or eax, 0xffffffff
mov esi, edx
sub ecx, edi
shr esi, 1
inc ecx
sub eax, esi
cmp eax, edx
jae 0x512b64
xor edx, edx
jmp 0x512b66
add edx, esi
cmp edx, ecx
cmovb edx, ecx
lea ecx, [ebp - 0x20]
push edx
call fcn.0046ae20
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x14]
test ecx, ecx
je 0x512b86
mov byte [ecx], bl
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 1]
inc ecx
mov dword [ebp - 0x30], eax
inc ebx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], ebx
mov al, byte [esi]
inc esi
test al, al
jne 0x512b97
sub esi, dword [ebp - 0x30]
cmp ebx, esi
jb 0x512ac0
test edi, edi
je 0x512bb6
push edi
call fcn.0053c1e0
add esp, 4
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x512bdb
push eax
call fcn.0053c1e0
add esp, 4
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x398]
test eax, eax
je 0x512bee
push eax
call fcn.0053c1e0
add esp, 4
mov edx, dword [ebp - 0x160]
xor eax, eax
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov dword [ebp - 0x2c], eax
xor esi, esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 0x24]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], esi
mov edi, dword [eax]
cmp edi, eax
je 0x513889
lea esp, [esp]
mov dword [ebp - 8], 0
mov esi, dword [edi + 0x10]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x512c50
cmp ecx, dword [esi - 0x10]
jne 0x512c50
lea ebx, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x512c89
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
je 0x513936
mov ecx, dword [esi - 0xc]
mov dword [ebx + 4], ecx
mov ecx, dword [esi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push esi
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.0053c67b
add esp, 0x10
add ebx, 0x10
mov dword [ebp - 0x154], 0x37456946
mov dword [ebp - 8], ebx
mov dword [ebp - 0x150], 0x74777749
mov dword [ebp - 0x14c], 0x684e6e4a
mov dword [ebp - 0x148], 0x6e554163
mov dword [ebp - 0x144], 0x674d6949
mov dword [ebp - 0x140], 0x6c78794b
mov dword [ebp - 0x13c], 0x6a456a4d
mov dword [ebp - 0x138], 0x3559584b
mov dword [ebp - 0x134], 0x2f6c6e4a
mov dword [ebp - 0x130], 0x784e5144
mov dword [ebp - 0x12c], 0x6a526947
mov dword [ebp - 0x128], 0x4938695a
mov dword [ebp - 0x124], 0x616b6848
mov dword [ebp - 0x120], 0x72646a48
mov dword [ebp - 0x11c], 0x72737765
mov dword [ebp - 0x118], 0x6a45784d
mov dword [ebp - 0x114], 0x305a434e
mov dword [ebp - 0x110], 0x366b4145
mov dword [ebp - 0x10c], 0x3159524b
mov dword [ebp - 0x108], 0x4c4d4347
mov dword [ebp - 0x104], 0x35557943
mov dword [ebp - 0x100], 0x77495346
mov dword [ebp - 0xfc], 0x69594765
mov dword [ebp - 0xf8], 0x30515848
mov dword [ebp - 0xf4], 0x486b6764
mov dword [ebp - 0xf0], 0x666b5145
mov dword [ebp - 0xec], 0x48345342
mov dword [ebp - 0xe8], 0x2f63424e
mov dword [ebp - 0xe4], 0x68467a66
mov dword [ebp - 0xe0], 0x76675841
mov dword [ebp - 0xdc], 0x5145524e
mov dword [ebp - 0xd8], 0x7738694a
mov dword [ebp - 0xd4], 0x36593249
mov dword [ebp - 0xd0], 0x57344847
mov dword [ebp - 0xcc], 0x35787959
mov dword [ebp - 0xc8], 0x646f7744
mov dword [ebp - 0xc4], 0x74515842
mov dword [ebp - 0xc0], 0x64307849
mov dword [ebp - 0xbc], 0x6c414249
mov dword [ebp - 0xb8], 0x6c6b4341
mov dword [ebp - 0xb4], 0x61776843
mov dword [ebp - 0xb0], 0x466f4246
mov dword [ebp - 0xac], 0x68304248
mov dword [ebp - 0xa8], 0x4c77535a
mov dword [ebp - 0xa4], 0x36567848
mov dword [ebp - 0xa0], 0x69414166
mov dword [ebp - 0x9c], 0x76554241
mov dword [ebp - 0x98], 0x64494461
mov dword [ebp - 0x94], 0x41734448
mov dword [ebp - 0x90], 0x48514846
mov dword [ebp - 0x8c], 0x6a6c784a
mov dword [ebp - 0x88], 0x49344347
mov dword [ebp - 0x84], 0x2b735365
mov dword [ebp - 0x80], 0x674d514d
mov dword [ebp - 0x7c], 0x68305441
mov dword [ebp - 0x78], 0x5849434c
mov dword [ebp - 0x74], 0x76306e42
mov dword [ebp - 0x70], 0x306b414c
mov dword [ebp - 0x6c], 0x7a38324c
mov dword [ebp - 0x68], 0x7968414d
mov dword [ebp - 0x64], 0x3538424b
mov dword [ebp - 0x60], 0x6e514459
mov dword [ebp - 0x5c], 0x4c516d4f
mov dword [ebp - 0x58], 0x6e596a4a
mov dword [ebp - 0x54], 0x46774141
mov dword [ebp - 0x50], 0x4330544c
mov dword [ebp - 0x4c], 0x2b455447
mov dword [ebp - 0x48], 0x62517a62
mov dword [ebp - 0x44], 0x7a417849
mov dword [ebp - 0x40], 0x64497941
mov dword [ebp - 0x3c], 0x6e525741
mov dword [ebp - 0x38], 0x41386848
mov dword [ebp - 0x34], 0x39434141
mov dword [ebp - 0x380], 0x686b5446
mov dword [ebp - 0x37c], 0x7651434e
mov dword [ebp - 0x378], 0x69497a42
mov dword [ebp - 0x374], 0x6a45534d
mov dword [ebp - 0x370], 0x77784850
mov dword [ebp - 0x36c], 0x76386e4d
mov dword [ebp - 0x368], 0x61677745
mov dword [ebp - 0x364], 0x755a794b
mov dword [ebp - 0x360], 0x34635441
mov dword [ebp - 0x35c], 0x53495242
mov dword [ebp - 0x358], 0x75734444
mov dword [ebp - 0x354], 0x5363414f
mov dword [ebp - 0x350], 0x72597750
mov dword [ebp - 0x34c], 0x57495459
mov dword [ebp - 0x348], 0x476f5447
mov dword [ebp - 0x344], 0x78346746
mov dword [ebp - 0x340], 0x66496e41
mov dword [ebp - 0x33c], 0x646b6746
mov dword [ebp - 0x338], 0x65384442
mov dword [ebp - 0x334], 0x3174794f
mov dword [ebp - 0x330], 0x32595348
mov dword [ebp - 0x32c], 0x78307a50
mov dword [ebp - 0x328], 0x54417a4f
mov dword [ebp - 0x324], 0x436b7741
mov dword [ebp - 0x320], 0x49636764
mov dword [ebp - 0x31c], 0x6a6b6e4d
mov dword [ebp - 0x318], 0x37557a49
mov dword [ebp - 0x314], 0x41387841
mov dword [ebp - 0x310], 0x4934474a
mov dword [ebp - 0x30c], 0x706b5442
mov dword [ebp - 0x308], 0x53414749
mov dword [ebp - 0x304], 0x31634459
mov dword [ebp - 0x300], 0x684e434a
mov dword [ebp - 0x2fc], 0x3268514a
mov dword [ebp - 0x2f8], 0x47737847
mov dword [ebp - 0x2f4], 0x76634143
mov dword [ebp - 0x2f0], 0x706f694a
mov dword [ebp - 0x2ec], 0x31774144
mov dword [ebp - 0x2e8], 0x38413249
mov dword [ebp - 0x2e4], 0x62555363
mov dword [ebp - 0x2e0], 0x6a4d5148
mov dword [ebp - 0x2dc], 0x6d516942
mov dword [ebp - 0x2d8], 0x2f685447
mov dword [ebp - 0x2d4], 0x2b734742
mov dword [ebp - 0x2d0], 0x75774243
mov dword [ebp - 0x2cc], 0x32676e42
mov dword [ebp - 0x2c8], 0x4f456849
mov dword [ebp - 0x2c4], 0x366b7847
mov dword [ebp - 0x2c0], 0x41774244
mov dword [ebp - 0x2bc], 0x566b4364
mov dword [ebp - 0x2b8], 0x6d4d4242
mov dword [ebp - 0x2b4], 0x32555359
mov dword [ebp - 0x2b0], 0x6c34684d
mov dword [ebp - 0x2ac], 0x4c457a5a
mov dword [ebp - 0x2a8], 0x6363674e
mov dword [ebp - 0x2a4], 0x634d6a44
mov dword [ebp - 0x2a0], 0x4c514143
mov dword [ebp - 0x29c], 0x4a513261
mov dword [ebp - 0x298], 0x48777865
mov dword [ebp - 0x294], 0x324e7944
mov dword [ebp - 0x290], 0x36634449
mov dword [ebp - 0x28c], 0x75737a50
mov dword [ebp - 0x288], 0x67387a50
mov dword [ebp - 0x284], 0x51776746
mov dword [ebp - 0x280], 0x71634148
mov dword [ebp - 0x27c], 0x2f6f4349
mov dword [ebp - 0x278], 0x4e34534b
mov dword [ebp - 0x274], 0x30386a4f
mov dword [ebp - 0x270], 0x4c6f6d65
mov dword [ebp - 0x26c], 0x37644463
mov dword [ebp - 0x268], 0x7a77774d
mov dword [ebp - 0x264], 0x7551794b
mov dword [ebp - 0x260], 0x66456d63
mov dword [ebp - 0x25c], 0x4641444f
mov dword [ebp - 0x258], 0x2f73784e
mov dword [ebp - 0x254], 0x79675463
mov dword [ebp - 0x250], 0x4441544d
mov dword [ebp - 0x24c], 0x67466a48
mov dword [ebp - 0x248], 0x67525843
mov dword [ebp - 0x244], 0x37306e46
mov dword [ebp - 0x240], 0x63496a46
mov dword [ebp - 0x23c], 0x4a774449
mov dword [ebp - 0x238], 0x62454447
mov dword [ebp - 0x234], 0x79354141
mov dword [ebp - 0x230], 0x786c794f
mov dword [ebp - 0x22c], 0x4b49544c
mov dword [ebp - 0x228], 0x4563514f
mov dword [ebp - 0x224], 0x5a516d62
mov dword [ebp - 0x220], 0x6d317843
mov dword [ebp - 0x21c], 0x3255684c
mov dword [ebp - 0x218], 0x4f514346
mov dword [ebp - 0x214], 0x7870534a
mov dword [ebp - 0x210], 0x46736948
mov dword [ebp - 0x20c], 0x77554849
mov dword [ebp - 0x208], 0x77776965
mov dword [ebp - 0x204], 0x6e415344
mov dword [ebp - 0x200], 0x3078414e
mov dword [ebp - 0x1fc], 0x736f444f
mov dword [ebp - 0x1f8], 0x674e524d
mov dword [ebp - 0x1f4], 0x524d5148
mov dword [ebp - 0x1f0], 0x43737a63
mov dword [ebp - 0x1ec], 0x42414141
mov word [ebp - 0x1e8], 0x6749
call fcn.00468bd0
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x513922
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10], esi
test ebx, ebx
je 0x51337d
test ebx, 0xffff0000
jne 0x51337d
movzx ebx, bx
push 0
push ebx
call fcn.004688f0
add esp, 8
test eax, eax
je 0x513389
push ebx
push eax
lea ecx, [ebp - 0x10]
call fcn.004ebc90
jmp 0x513386
push ebx
lea ecx, [ebp - 0x10]
call fcn.004b7c30
mov esi, dword [ebp - 0x10]
sub esp, 0xc
lea eax, [ebp - 0x30]
mov ecx, esp
push dword [ebp - 0x15c]
mov dword [ecx], 0
push eax
lea eax, [ebp - 0x154]
mov dword [ecx + 4], 0
push eax
push 0
mov dword [ecx + 8], 0
call fcn.004660a0
lea eax, [ebp - 0x398]
push eax
call fcn.0047fb90
add esp, 0x10
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x384], ebx
sub eax, ebx
je 0x513904
mov ecx, dword [esi - 0x10]
lea eax, [esi - 0x10]
mov dword [ebp - 0x388], eax
test ecx, ecx
je 0x5133f7
mov eax, dword [ecx]
call dword [eax + 0x10]
mov edx, eax
test edx, edx
jne 0x513405
call fcn.00468bd0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov edx, eax
xor ecx, ecx
test edx, edx
setne cl
test ecx, ecx
je 0x513922
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov edx, dword [esi - 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x158], edx
test ebx, ebx
je 0x51343e
lea ecx, [ebx + 1]
mov dword [ebp - 0x30], ecx
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x513434
sub ebx, dword [ebp - 0x30]
lea ecx, [edx + ebx]
mov dword [ebp - 0x14], ecx
test ecx, ecx
js 0x51392c
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, dword [ebp - 0x14]
or ecx, edx
jge 0x51346c
push dword [ebp - 0x14]
lea ecx, [ebp - 0x10]
call fcn.00468db0
mov eax, dword [ebp - 0x10]
push ebx
push dword [ebp - 0x384]
push ebx
push eax
call fcn.0053c67b
mov eax, dword [ebp - 0x158]
push eax
push esi
mov esi, dword [ebp - 0x10]
push eax
lea eax, [esi + ebx]
push eax
call fcn.0053c67b
mov eax, dword [ebp - 0x14]
add esp, 0x20
cmp eax, dword [esi - 8]
jg 0x51392c
sub esp, 0xc
mov dword [esi - 0xc], eax
mov ecx, esp
mov byte [esi + eax], 0
lea eax, [ebp - 0x1e6]
push dword [ebp - 0x15c]
mov dword [ecx], 0
push eax
lea eax, [ebp - 0x380]
mov dword [ecx + 4], 0
push eax
push 0
mov dword [ecx + 8], 0
call fcn.004660a0
lea eax, [ebp - 0x3a4]
push eax
call fcn.0047fb90
add esp, 0x10
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
je 0x513904
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov dword [ebp - 0x20], ebx
xor edx, edx
mov ebx, esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], ecx
lea eax, [ebx + 1]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x384], eax
jmp 0x513520
mov al, byte [ebx]
inc ebx
test al, al
jne 0x513520
mov dword [ebp - 0x158], ebx
mov eax, ebx
mov ebx, dword [ebp - 0x20]
sub eax, dword [ebp - 0x384]
je 0x51365f
mov eax, ecx
mov al, byte [eax + esi]
lea esi, [ebp - 0xa]
xor al, 0x8b
cmp esi, ecx
mov esi, dword [ebp - 0x10]
mov byte [ebp - 9], al
mov byte [ebp - 0xa], al
jae 0x5135bd
lea esi, [ebp - 0xa]
cmp ebx, esi
mov esi, dword [ebp - 0x10]
ja 0x5135bd
lea eax, [ebp - 0xa]
sub eax, ebx
mov dword [ebp - 0x30], eax
cmp ecx, edx
jne 0x5135b4
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x5135b1
mov eax, ebx
sub eax, ecx
dec eax
cmp eax, 1
jb 0x513918
sub ecx, ebx
sub edx, ebx
mov ebx, edx
or eax, 0xffffffff
shr ebx, 1
inc ecx
sub eax, ebx
cmp eax, edx
jae 0x513598
xor edx, edx
jmp 0x51359a
add edx, ebx
cmp edx, ecx
cmovb edx, ecx
lea ecx, [ebp - 0x20]
push edx
call fcn.0046ae20
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
test ecx, ecx
je 0x51360d
mov al, byte [ebx + eax]
jmp 0x51360b
cmp ecx, edx
jne 0x513607
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x513604
mov eax, ebx
sub eax, ecx
dec eax
cmp eax, 1
jb 0x513918
sub ecx, ebx
sub edx, ebx
mov ebx, edx
or eax, 0xffffffff
shr ebx, 1
inc ecx
sub eax, ebx
cmp eax, edx
jae 0x5135ee
xor edx, edx
jmp 0x5135f0
add edx, ebx
cmp edx, ecx
cmovb edx, ecx
lea ecx, [ebp - 0x20]
push edx
call fcn.0046ae20
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov al, byte [ebp - 9]
test ecx, ecx
je 0x51360d
mov byte [ecx], al
mov ebx, esi
inc ecx
inc dword [ebp - 0x14]
mov dword [ebp - 0x1c], ecx
lea eax, [ebx + 1]
mov dword [ebp - 0x158], eax
nop
mov al, byte [ebx]
inc ebx
test al, al
jne 0x513620
sub ebx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x14]
cmp eax, ebx
mov ebx, dword [ebp - 0x20]
jb 0x513540
mov eax, ebx
test eax, eax
je 0x51365f
push eax
call fcn.0053c1e0
add esp, 4
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x3a4]
test eax, eax
je 0x513690
push eax
call fcn.0053c1e0
add esp, 4
mov dword [ebp - 0x3a4], 0
mov dword [ebp - 0x3a0], 0
mov dword [ebp - 0x39c], 0
add esi, 0xfffffff0
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x5136aa
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x398]
test eax, eax
je 0x5136db
push eax
call fcn.0053c1e0
add esp, 4
mov dword [ebp - 0x398], 0
mov dword [ebp - 0x394], 0
mov dword [ebp - 0x390], 0
mov edx, dword [ebp - 0x388]
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x5136f8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x160]
lea eax, [ebp - 8]
add ebx, 0x24
push eax
mov ecx, ebx
call fcn.00537d10
mov esi, eax
cmp esi, dword [ebx]
je 0x51374f
mov eax, dword [esi + 0x10]
test eax, eax
je 0x513922
mov ecx, dword [ebp - 8]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x513746
test dx, dx
je 0x513742
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x513746
add ecx, 4
add eax, 4
test dx, dx
jne 0x513720
xor eax, eax
jmp 0x51374b
sbb eax, eax
or eax, 1
test eax, eax
jns 0x513789
lea eax, [ebp - 8]
mov ecx, ebx
mov dword [ebp - 0x388], eax
lea eax, [ebp - 9]
push eax
lea eax, [ebp - 0x388]
push eax
push 0x5c42f4
call fcn.004acea0
push eax
add eax, 0x10
mov ecx, ebx
push eax
push esi
lea eax, [ebp - 0x38c]
push eax
call fcn.004adad0
mov esi, dword [ebp - 0x38c]
mov ebx, dword [esi + 0x14]
lea eax, [ebp - 8]
mov esi, dword [ebp - 0x28]
cmp eax, esi
jae 0x5137d6
mov ecx, dword [ebp - 0x2c]
cmp ecx, eax
ja 0x5137d6
mov esi, eax
mov eax, dword [ebp - 0x28]
sub esi, ecx
sar esi, 2
cmp eax, dword [ebp - 0x24]
jne 0x5137bc
push 1
lea ecx, [ebp - 0x2c]
call fcn.00538600
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
test eax, eax
je 0x5137d1
mov eax, dword [ecx + esi*4]
sub eax, 0x10
push eax
call fcn.004c2870
mov esi, dword [ebp - 0x28]
jmp 0x5137f8
mov esi, dword [ebp - 0x28]
jmp 0x513800
cmp esi, dword [ebp - 0x24]
jne 0x5137e8
push 1
lea ecx, [ebp - 0x2c]
call fcn.00538600
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x513800
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
push eax
call fcn.004c2870
add esp, 4
add eax, 0x10
mov dword [esi], eax
push dword [ebp - 0x15c]
add esi, 4
mov ecx, ebx
mov dword [ebp - 0x28], esi
call fcn.00510a50
mov edx, dword [ebp - 8]
or ecx, 0xffffffff
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x513830
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [edi + 0xd], 0
jne 0x513877
mov eax, dword [edi + 8]
cmp byte [eax + 0xd], 0
jne 0x51385c
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
jne 0x513877
lea esp, [esp]
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
je 0x513850
jmp 0x513877
mov eax, dword [edi + 4]
cmp byte [eax + 0xd], 0
jne 0x513875
cmp edi, dword [eax + 8]
jne 0x513875
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x513865
mov edi, eax
mov edx, dword [ebp - 0x160]
cmp edi, dword [edx + 0x24]
jne 0x512c20
mov ecx, dword [ebp - 0x2c]
sub esi, ecx
sar esi, 2
test esi, esi
je 0x5138b5
mov byte [ebp - 9], 0
mov edi, ecx
push 0
lea eax, [ebp - 9]
mov ecx, edx
push eax
push edi
call fcn.004fee70
mov edx, dword [ebp - 0x160]
add edi, 4
dec esi
jne 0x513898
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x5138f1
mov ebx, dword [ebp - 0x28]
mov esi, ecx
cmp ecx, ebx
je 0x5138e8
mov edx, dword [esi]
or ecx, 0xffffffff
sub edx, 0x10
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x5138de
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 4
cmp esi, ebx
jne 0x5138c2
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0053c1e0
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0053d3a0
mov esp, ebp
pop ebp
ret 4
push str.invalid_vector_T__subscript
call fcn.0053af06
push str.invalid_vector_T__subscript
call fcn.0053af06
push str.vector_T__too_long
call fcn.0053aed8
push 0x80004005
call fcn.00468960
push 0x80070057
call fcn.00468960
call fcn.00469160
int3