Function at 0x510290
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x608b06
mov eax, dword fs:[0]
push eax
sub esp, 0x150
push ebx
push esi
push edi
mov eax, dword [0x6a1450]
xor eax, esp
push eax
lea eax, [esp + 0x160]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x44], esi
mov edi, dword [ebp + 0x14]
xor eax, eax
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x18], eax
lea eax, [edi + 1]
cmp eax, ebx
jne 0x510d3e
lea eax, [ebx - 1]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.00506790
add esp, 8
mov dword [esp + 0x168], 0
cmp dword [0x6f4ae4], 0
jne 0x51031a
call fcn.00504e70
mov dword [0x6f4ae4], 0x4fa640
push 2
mov dword [esp + 0x34], vtable.CryptoPP::Integer.0
mov dword [esp + 0x3c], 2
call fcn.004e1fd0
add esp, 4
push 8
call fcn.004dbaf0
add esp, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 0
mov dword [eax], 1
mov dword [eax + 4], 0
lea eax, [esp + 0xb4]
mov byte [esp + 0x168], 1
push ebx
push eax
call fcn.00506790
lea ecx, [esp + 0x38]
mov byte [esp + 0x170], 2
push ecx
push eax
lea eax, [esp + 0x94]
push eax
call fcn.004dea00
add esp, 0x14
mov edx, dword [esp + 0xbc]
xor eax, eax
mov ebx, dword [esp + 0xc0]
mov ecx, edx
mov edi, ebx
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push ebx
cmp eax, 0x10
jb 0x5103b5
call fcn.005ffcb8
jmp 0x5103ba
call fcn.005ca27a
add esp, 4
mov byte [esp + 0x168], 5
xor eax, eax
mov edx, dword [esp + 0x3c]
mov ecx, 2
mov edi, edx
rep stosd dword es:[edi], eax
push edx
call fcn.005ca27a
mov eax, dword [ebp + 8]
add esp, 4
mov byte [esp + 0x17], 0
lea edi, [eax*4 + 6]
add edi, eax
mov dword [esp + 0x98], edi
cmp dword [0x6f4ae4], 0
jne 0x51040d
call fcn.00504e70
mov dword [0x6f4ae4], 0x4fa640
push 2
mov dword [esp + 0x20], vtable.CryptoPP::Integer.0
mov dword [esp + 0x28], 2
call fcn.004e1fd0
add esp, 4
push 8
call fcn.004dbaf0
mov ebx, eax
mov dword [esp + 0x30], 0
add esp, 4
mov dword [esp + 0x28], ebx
mov dword [ebx], 0xc
mov dword [ebx + 4], 0
mov byte [esp + 0x168], 6
cmp dword [0x6f4ae4], 0
jne 0x51046c
call fcn.00504e70
mov dword [0x6f4ae4], 0x4fa640
push 2
mov dword [esp + 0x34], vtable.CryptoPP::Integer.0
mov dword [esp + 0x3c], 2
call fcn.004e1fd0
add esp, 4
push 8
call fcn.004dbaf0
add esp, 4
mov dword [esp + 0x3c], eax
test edi, edi
js 0x5104a2
mov dword [esp + 0x40], 0
jmp 0x5104ac
mov dword [esp + 0x40], 1
neg edi
mov dword [eax], edi
mov dword [eax + 4], 0
lea eax, [esp + 0x1c]
mov byte [esp + 0x168], 7
push eax
lea eax, [esp + 0x34]
mov ecx, esi
push eax
push 0
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x80]
push eax
push dword [ebp + 0xc]
call fcn.00507500
mov edx, dword [esp + 0x3c]
xor eax, eax
mov edi, edx
mov ecx, 2
rep stosd dword es:[edi], eax
push edx
call fcn.005ca27a
add esp, 4
mov byte [esp + 0x168], 5
xor eax, eax
mov edi, ebx
mov ecx, 2
rep stosd dword es:[edi], eax
push ebx
call fcn.005ca27a
add esp, 4
cmp dword [0x6f4ae4], 0
jne 0x51052f
call fcn.00504e70
mov dword [0x6f4ae4], 0x4fa640
push 2
mov dword [esp + 0x20], vtable.CryptoPP::Integer.0
mov dword [esp + 0x28], 2
call fcn.004e1fd0
add esp, 4
push 8
call fcn.004dbaf0
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov dword [eax], 0xc
mov dword [eax + 4], 0
mov byte [esp + 0x168], 8
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x51059b
mov ebx, dword [esp + 0x90]
lea eax, [edx - 1]
lea eax, [ebx + eax*4]
lea esp, [esp]
cmp dword [eax], 0
jne 0x5105f3
sub eax, 4
dec edx
jne 0x510590
xor edx, edx
lea edi, [edx + edx*2]
shl edi, 2
cmp dword [0x6f4ae4], 0
jne 0x5105bb
call fcn.00504e70
mov dword [0x6f4ae4], 0x4fa640
push 2
mov dword [esp + 0x34], vtable.CryptoPP::Integer.0
mov dword [esp + 0x3c], 2
call fcn.004e1fd0
add esp, 4
push 8
call fcn.004dbaf0
add esp, 4
mov ebx, eax
mov dword [esp + 0x3c], ebx
test edi, edi
js 0x51063f
mov dword [esp + 0x40], 0
jmp 0x510649
test edx, edx
je 0x51059b
mov ebx, dword [ebx + edx*4 - 4]
test ebx, ebx
jne 0x51060d
dec edx
xor esi, esi
shl edx, 5
add edx, esi
mov esi, dword [esp + 0x44]
jmp 0x51059d
xor edi, edi
mov esi, 0x20
lea ecx, [edi + esi]
mov eax, ebx
shr ecx, 1
shr eax, cl
test eax, eax
je 0x510625
mov edi, ecx
jmp 0x510627
mov esi, ecx
mov eax, esi
sub eax, edi
cmp eax, 1
ja 0x510614
dec edx
shl edx, 5
add edx, esi
mov esi, dword [esp + 0x44]
jmp 0x51059d
mov dword [esp + 0x40], 1
neg edi
mov dword [ebx], edi
mov dword [ebx + 4], 0
lea eax, [esp + 0x30]
mov byte [esp + 0x168], 9
push eax
lea eax, [esp + 0x60]
push esi
push eax
call fcn.004de9d0
add esp, 0xc
mov edi, eax
mov byte [esp + 0x168], 0xa
cmp dword [esp + 0x94], 1
je 0x51069f
cmp dword [edi + 0x10], 1
je 0x510698
push edi
lea ecx, [esp + 0x88]
call fcn.005099d0
mov ecx, eax
jmp 0x5106bb
mov ecx, 1
jmp 0x5106bb
cmp dword [edi + 0x10], 1
je 0x5106aa
or ecx, 0xffffffff
jmp 0x5106bb
push edi
lea ecx, [esp + 0x88]
call fcn.005099d0
mov ecx, eax
neg ecx
push dword [ebp + 8]
test ecx, ecx
lea eax, [esp + 0x88]
lea ecx, [esp + 0x20]
push ecx
cmovns eax, edi
lea ecx, [esp + 0x10c]
push eax
push esi
call fcn.0050e6c0
mov eax, dword [esp + 0x68]
mov edi, eax
mov edx, dword [esp + 0x64]
mov ecx, edx
mov dword [esp + 0x18], eax
xor eax, eax
push dword [esp + 0x18]
rep stosd dword es:[edi], eax
lea eax, [edx*4]
cmp eax, 0x10
jb 0x510708
call fcn.005ffcb8
jmp 0x51070d
call fcn.005ca27a
add esp, 4
xor eax, eax
mov edi, ebx
mov ecx, 2
rep stosd dword es:[edi], eax
push ebx
call fcn.005ca27a
add esp, 4
mov byte [esp + 0x168], 0xe
xor eax, eax
mov edx, dword [esp + 0x28]
mov ecx, 2
mov edi, edx
rep stosd dword es:[edi], eax
push edx
call fcn.005ca27a
add esp, 4
lea ecx, [esp + 0x104]
push esi
call fcn.0050e780
test al, al
je 0x51099c
lea ebx, [esi + 0x14]
lea esp, [esp]
cmp dword [0x6f4ae4], 0
mov edi, dword [ebp + 8]
mov esi, edi
jne 0x51077d
call fcn.00504e70
mov dword [0x6f4ae4], 0x4fa640
push 2
mov dword [esp + 0x34], vtable.CryptoPP::Integer.0
mov dword [esp + 0x3c], 2
call fcn.004e1fd0
add esp, 4
push 8
call fcn.004dbaf0
add esp, 4
mov dword [esp + 0x3c], eax
test edi, edi
js 0x5107b3
mov dword [esp + 0x40], 0
jmp 0x5107bd
mov dword [esp + 0x40], 1
neg esi
mov dword [eax], esi
mov dword [eax + 4], 0
lea eax, [esp + 0x30]
mov byte [esp + 0x168], 0xf
push eax
push dword [esp + 0x48]
lea eax, [esp + 0x50]
push eax
call fcn.004dea00
add esp, 0xc
push 1
lea ecx, [esp + 0x20]
mov byte [esp + 0x16c], 0x10
push ecx
mov ecx, eax
call fcn.004fa4f0
mov esi, eax
mov dword [esp + 0x18], esi
mov byte [esp + 0x168], 0x11
cmp ebx, esi
je 0x5108d8
mov ecx, dword [esi + 8]
cmp dword [ebx + 8], ecx
jne 0x510829
mov edx, dword [esi + 0xc]
mov eax, ecx
shr eax, 1
cmp dword [edx + eax*4], 0
jne 0x5108b7
mov eax, dword [esi + 0xc]
test ecx, ecx
je 0x510841
lea eax, [eax + ecx*4]
add eax, 0xfffffffc
cmp dword [eax], 0
jne 0x510841
sub eax, 4
dec ecx
jne 0x510836
cmp ecx, 8
ja 0x51084f
mov eax, dword [ecx*4 + 0x6416d4]
jmp 0x5108ae
cmp ecx, 0x10
ja 0x51085b
mov eax, 0x10
jmp 0x5108ae
cmp ecx, 0x20
ja 0x510867
mov eax, 0x20
jmp 0x5108ae
cmp ecx, 0x40
ja 0x510873
mov eax, 0x40
jmp 0x5108ae
lea edi, [ecx - 1]
test edi, edi
jne 0x51087e
xor edx, edx
jmp 0x5108a5
xor esi, esi
mov edx, 0x20
lea ecx, [esi + edx]
mov eax, edi
shr ecx, 1
shr eax, cl
test eax, eax
je 0x510896
mov esi, ecx
jmp 0x510898
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x510885
mov esi, dword [esp + 0x18]
mov eax, 1
mov ecx, edx
shl eax, cl
push eax
lea ecx, [ebx + 4]
call fcn.0050b120
mov ecx, dword [esi + 0xc]
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
cmp edx, ecx
je 0x5108d2
shl eax, 2
push eax
push ecx
push edx
call fcn.005cda00
add esp, 0xc
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov edx, dword [esp + 0x24]
xor eax, eax
mov esi, dword [esp + 0x28]
mov ecx, edx
mov edi, esi
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push esi
cmp eax, 0x10
jb 0x5108fc
call fcn.005ffcb8
jmp 0x510901
call fcn.005ca27a
mov edx, dword [esp + 0x54]
xor eax, eax
mov esi, dword [esp + 0x58]
add esp, 4
mov edi, esi
mov ecx, edx
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push esi
cmp eax, 0x10
jb 0x510928
call fcn.005ffcb8
jmp 0x51092d
call fcn.005ca27a
mov byte [esp + 0x16c], 0xe
add esp, 4
mov edx, dword [esp + 0x3c]
xor eax, eax
mov edi, edx
mov ecx, 2
rep stosd dword es:[edi], eax
push edx
call fcn.005ca27a
add esp, 4
mov ecx, ebx
call fcn.0050e5e0
mov esi, dword [esp + 0x44]
test al, al
je 0x510980
mov ecx, esi
call fcn.0050e5e0
test al, al
je 0x510980
mov ecx, ebx
call fcn.0050e3c0
test al, al
je 0x510980
mov ecx, esi
call fcn.0050e3c0
test al, al
jne 0x510997
push esi
lea ecx, [esp + 0x108]
call fcn.0050e780
test al, al
jne 0x510760
jmp 0x51099c
mov byte [esp + 0x17], 1
lea ecx, [esp + 0x104]
mov byte [esp + 0x168], 5
call fcn.0050f9b0
cmp byte [esp + 0x17], 0
mov edi, dword [esp + 0x98]
je 0x5103f5
cmp dword [ebp + 8], 1
lea ecx, [esp + 0x1c]
jne 0x510a79
push 2
call fcn.00506620
lea eax, [esp + 0x1c]
mov byte [esp + 0x168], 0x12
push eax
lea ecx, [esi + 0x28]
call fcn.005068c0
mov byte [esp + 0x168], 5
xor eax, eax
mov edx, dword [esp + 0x24]
mov ecx, edx
mov edi, dword [esp + 0x28]
rep stosd dword es:[edi], eax
lea eax, [edx*4]
cmp eax, 0x10
mov eax, dword [esp + 0x28]
push eax
jb 0x510a1a
call fcn.005ffcb8
jmp 0x510a1f
call fcn.005ca27a
add esp, 4
lea ecx, [esi + 0x28]
mov edx, esi
call fcn.0050fbe0
cmp eax, 1
je 0x510a48
lea ecx, [esi + 0x28]
call fcn.00508190
mov edx, esi
lea ecx, [esi + 0x28]
call fcn.0050fbe0
cmp eax, 1
jne 0x510a31
mov edx, dword [esp + 0x8c]
xor eax, eax
mov esi, dword [esp + 0x90]
mov ecx, edx
mov edi, esi
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push esi
cmp eax, 0x10
jb 0x510cd6
call fcn.005ffcb8
jmp 0x510cdb
push 3
call fcn.00506620
lea eax, [esp + 0x1c]
mov byte [esp + 0x168], 0x13
lea ecx, [esi + 0x28]
push eax
call fcn.005068c0
mov byte [esp + 0x168], 5
xor eax, eax
mov edx, dword [esp + 0x24]
mov ecx, edx
mov ebx, dword [esp + 0x28]
mov edi, ebx
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push ebx
cmp eax, 0x10
jb 0x510ac1
call fcn.005ffcb8
jmp 0x510ac6
call fcn.005ca27a
mov ebx, dword [esp + 0xa0]
lea edi, [esi + 0x28]
add esp, 4
push 4
lea ecx, [esp + 0x34]
call fcn.00506620
push edi
lea eax, [esp + 0xa4]
mov byte [esp + 0x16c], 0x14
push edi
or ebx, 1
push eax
mov dword [esp + 0x24], ebx
call fcn.004dea30
add esp, 0xc
lea ecx, [esp + 0x30]
mov dword [esp + 0x168], 0x15
push ecx
push eax
lea eax, [esp + 0x64]
or ebx, 2
push eax
mov dword [esp + 0x24], ebx
call fcn.004dea00
add esp, 0xc
mov dword [esp + 0x168], 0x16
or ebx, 4
mov edx, esi
mov dword [esp + 0x18], ebx
mov ecx, eax
call fcn.0050fbe0
cmp eax, 0xffffffff
jne 0x510b89
push 2
lea ecx, [esp + 0x20]
call fcn.00506620
push esi
mov dword [esp + 0x16c], 0x17
lea edx, [esi + 0x14]
or ebx, 8
lea ecx, [esp + 0x4c]
push edi
mov dword [esp + 0x20], ebx
call fcn.0050ff30
lea ecx, [esp + 0x24]
or ebx, 0x10
push ecx
push eax
call fcn.004de820
add esp, 0x10
mov byte [esp + 0x17], 1
test al, al
jne 0x510b8e
mov byte [esp + 0x17], 0
test bl, 0x10
je 0x510bc9
mov eax, dword [esp + 0x54]
and ebx, 0xffffffef
mov edx, dword [esp + 0x50]
mov edi, eax
mov dword [esp + 0x18], eax
mov ecx, edx
push dword [esp + 0x18]
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [edx*4]
cmp eax, 0x10
jb 0x510bc1
call fcn.005ffcb8
jmp 0x510bc6
call fcn.005ca27a
add esp, 4
test bl, 8
je 0x510bff
mov edx, dword [esp + 0x24]
xor eax, eax
mov edi, dword [esp + 0x28]
mov ecx, edx
rep stosd dword es:[edi], eax
lea eax, [edx*4]
and ebx, 0xfffffff7
cmp eax, 0x10
mov eax, dword [esp + 0x28]
push eax
jb 0x510bf7
call fcn.005ffcb8
jmp 0x510bfc
call fcn.005ca27a
add esp, 4
test bl, 4
je 0x510c3a
mov eax, dword [esp + 0x68]
and ebx, 0xfffffffb
mov edx, dword [esp + 0x64]
mov edi, eax
mov dword [esp + 0x18], eax
mov ecx, edx
push dword [esp + 0x18]
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [edx*4]
cmp eax, 0x10
jb 0x510c32
call fcn.005ffcb8
jmp 0x510c37
call fcn.005ca27a
add esp, 4
test bl, 2
je 0x510c7b
mov eax, dword [esp + 0xac]
and ebx, 0xfffffffd
mov edx, dword [esp + 0xa8]
mov edi, eax
mov dword [esp + 0x18], eax
mov ecx, edx
push dword [esp + 0x18]
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [edx*4]
cmp eax, 0x10
jb 0x510c73
call fcn.005ffcb8
jmp 0x510c78
call fcn.005ca27a
add esp, 4
mov dword [esp + 0x168], 5
test bl, 1
je 0x510cbc
mov edx, dword [esp + 0x38]
xor eax, eax
mov edi, dword [esp + 0x3c]
mov ecx, edx
rep stosd dword es:[edi], eax
lea eax, [edx*4]
and ebx, 0xfffffffe
cmp eax, 0x10
mov eax, dword [esp + 0x3c]
push eax
jb 0x510cb4
call fcn.005ffcb8
jmp 0x510cb9
call fcn.005ca27a
add esp, 4
cmp byte [esp + 0x17], 0
jne 0x510a48
lea edi, [esi + 0x28]
mov ecx, edi
call fcn.00508190
jmp 0x510ad3
call fcn.005ca27a
mov edx, dword [esp + 0x7c]
xor eax, eax
mov esi, dword [esp + 0x80]
add esp, 4
mov edi, esi
mov ecx, edx
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push esi
cmp eax, 0x10
jb 0x510d1e
call fcn.005ffcb8
add esp, 4
mov ecx, dword [esp + 0x160]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
call fcn.005ca27a
add esp, 4
mov ecx, dword [esp + 0x160]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea eax, [edi - 1]
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.00506790
add esp, 8
push 1
lea ecx, [esp + 0x20]
mov dword [esp + 0x16c], 0x18
call fcn.00506620
lea eax, [esp + 0xa0]
mov byte [esp + 0x168], 0x19
push edi
push eax
call fcn.00506790
lea ecx, [esp + 0x24]
mov byte [esp + 0x170], 0x1a
push ecx
push eax
lea eax, [esp + 0xd8]
push eax
call fcn.004dea00
add esp, 0x14
mov eax, dword [esp + 0xac]
mov edi, eax
mov edx, dword [esp + 0xa8]
mov ecx, edx
mov dword [esp + 0x18], eax
xor eax, eax
push dword [esp + 0x18]
rep stosd dword es:[edi], eax
lea eax, [edx*4]
cmp eax, 0x10
jb 0x510dcd
call fcn.005ffcb8
jmp 0x510dd2
call fcn.005ca27a
add esp, 4
mov byte [esp + 0x168], 0x1d
xor eax, eax
mov edx, dword [esp + 0x24]
mov ecx, edx
mov edi, dword [esp + 0x28]
rep stosd dword es:[edi], eax
lea eax, [edx*4]
cmp eax, 0x10
mov eax, dword [esp + 0x28]
push eax
jb 0x510e03
call fcn.005ffcb8
jmp 0x510e08
call fcn.005ca27a
add esp, 4
lea eax, [ebx - 1]
push eax
lea eax, [esp + 0xf4]
push eax
call fcn.00506790
add esp, 8
push 1
lea ecx, [esp + 0x74]
mov byte [esp + 0x16c], 0x1e
call fcn.00506620
lea eax, [esp + 0xa0]
mov byte [esp + 0x168], 0x1f
push ebx
push eax
call fcn.00506790
lea ecx, [esp + 0x78]
mov byte [esp + 0x170], 0x20
push ecx
push eax
lea eax, [esp + 0x40]
push eax
call fcn.004dea00
add esp, 0x14
mov edx, dword [esp + 0xa8]
xor eax, eax
mov ebx, dword [esp + 0xac]
mov ecx, edx
mov edi, ebx
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push ebx
cmp eax, 0x10
jb 0x510e8d
call fcn.005ffcb8
jmp 0x510e92
call fcn.005ca27a
add esp, 4
mov byte [esp + 0x168], 0x23
xor eax, eax
mov edx, dword [esp + 0x78]
mov ecx, edx
mov ebx, dword [esp + 0x7c]
mov edi, ebx
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push ebx
cmp eax, 0x10
jb 0x510ec1
call fcn.004dbae0
jmp 0x510ec6
call fcn.004dbb70
mov ebx, dword [ebp + 0xc]
lea edi, [esi + 0x14]
add esp, 4
nop
call fcn.00506870
push eax
push ecx
call fcn.00506860
add esp, 4
mov ecx, edi
push eax
push 1
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0xec]
push eax
push ebx
call fcn.00507500
push dword [ebp + 8]
lea ecx, [esp + 0x4c]
call fcn.00506620
push edi
lea eax, [esp + 0x4c]
mov byte [esp + 0x16c], 0x24
push eax
lea eax, [esp + 0x64]
push eax
call fcn.004dea90
add esp, 0xc
push edi
push eax
push 1
lea eax, [esp + 0x3c]
mov byte [esp + 0x174], 0x25
push eax
lea eax, [esp + 0x100]
mov ecx, esi
push eax
push ebx
call fcn.00507500
test al, al
lea ecx, [esp + 0x5c]
sete bl
call fcn.004de7e0
lea ecx, [esp + 0x48]
mov byte [esp + 0x168], 0x23
call fcn.004de7e0
test bl, bl
mov ebx, dword [ebp + 0xc]
jne 0x510ed0
cmp dword [ebp + 8], 1
jne 0x5110f0
lea ebx, [esi + 0x28]
lea esp, [esp]
push 2
lea ecx, [esp + 0x60]
call fcn.00506620
push 2
lea ecx, [esp + 0x4c]
mov byte [esp + 0x16c], 0x26
call fcn.00506620
lea eax, [esp + 0x5c]
mov byte [esp + 0x168], 0x27
push eax
lea eax, [esp + 0x74]
push esi
push eax
call fcn.004dea00
add esp, 0xc
mov esi, eax
mov byte [esp + 0x168], 0x28
call fcn.00506870
push eax
push ecx
call fcn.00506860
add esp, 4
lea ecx, [esp + 0xb8]
push eax
push 0
push esi
lea eax, [esp + 0x58]
push eax
push dword [ebp + 0xc]
call fcn.005066a0
lea ecx, [esp + 0x70]
call fcn.004de7e0
lea ecx, [esp + 0x48]
call fcn.004de7e0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x168], 0x2c
call fcn.004de7e0
push 1
lea ecx, [esp + 0x4c]
call fcn.00506620
mov esi, dword [esp + 0x44]
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x88]
mov byte [esp + 0x16c], 0x2d
push esi
push eax
call fcn.004dea00
add esp, 0xc
push edi
push eax
lea eax, [esp + 0x24]
mov byte [esp + 0x170], 0x2e
push eax
call fcn.004dea60
add esp, 0xc
push esi
push eax
lea eax, [esp + 0xbc]
mov byte [esp + 0x170], 0x2f
push eax
lea eax, [esp + 0x68]
push eax
call fcn.00509ff0
add esp, 0x10
push eax
mov ecx, ebx
mov byte [esp + 0x16c], 0x30
call fcn.005068c0
lea ecx, [esp + 0x5c]
call fcn.004de7e0
lea ecx, [esp + 0x1c]
call fcn.004de7e0
lea ecx, [esp + 0x84]
call fcn.004de7e0
lea ecx, [esp + 0x48]
call fcn.004de7e0
lea ecx, [esp + 0xb4]
mov byte [esp + 0x168], 0x23
call fcn.004de7e0
push 1
lea ecx, [esp + 0x4c]
call fcn.00506620
lea edx, [esp + 0x48]
mov ecx, ebx
call fcn.0050c980
lea ecx, [esp + 0x48]
mov bl, al
call fcn.004de7e0
test bl, bl
lea ebx, [esi + 0x28]
jne 0x510f80
jmp 0x5112d6
push 1
lea ecx, [esp + 0x60]
call fcn.00506620
push 3
lea ecx, [esp + 0x4c]
mov byte [esp + 0x16c], 0x31
call fcn.00506620
lea eax, [esp + 0x5c]
mov byte [esp + 0x168], 0x32
push eax
lea eax, [esp + 0xb8]
push esi
push eax
call fcn.004dea00
add esp, 0xc
mov esi, eax
mov byte [esp + 0x168], 0x33
call fcn.00506870
push eax
push ecx
call fcn.00506860
add esp, 4
lea ecx, [esp + 0x20]
push eax
push 0
push esi
lea eax, [esp + 0x58]
push eax
push dword [ebp + 0xc]
call fcn.005066a0
lea ecx, [esp + 0xb4]
call fcn.004de7e0
lea ecx, [esp + 0x48]
call fcn.004de7e0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x168], 0x37
call fcn.004de7e0
push 4
lea ecx, [esp + 0x4c]
call fcn.00506620
lea eax, [esp + 0x1c]
mov byte [esp + 0x168], 0x38
push eax
push eax
lea eax, [esp + 0x78]
push eax
call fcn.004dea30
add esp, 0xc
lea ecx, [esp + 0x48]
mov byte [esp + 0x168], 0x39
push ecx
push eax
lea eax, [esp + 0x64]
push eax
call fcn.004dea00
add esp, 0xc
mov esi, dword [esp + 0x44]
mov ecx, eax
mov edx, esi
mov byte [esp + 0x168], 0x3a
call fcn.0050fbe0
cmp eax, 1
lea ecx, [esp + 0x5c]
sete bl
call fcn.004de7e0
lea ecx, [esp + 0x70]
call fcn.004de7e0
lea ecx, [esp + 0x48]
mov byte [esp + 0x168], 0x37
call fcn.004de7e0
test bl, bl
jne 0x51129b
push 1
lea ecx, [esp + 0x4c]
call fcn.00506620
lea eax, [esp + 0x48]
mov byte [esp + 0x168], 0x3b
push eax
lea eax, [esp + 0x88]
push esi
push eax
call fcn.004de9d0
add esp, 0xc
push edi
push eax
lea eax, [esp + 0x78]
mov byte [esp + 0x170], 0x3c
push eax
call fcn.004dea60
add esp, 0xc
lea ecx, [esp + 0x1c]
mov byte [esp + 0x168], 0x3d
push esi
push ecx
mov edx, eax
lea ecx, [esp + 0x64]
call fcn.0050ff30
add esp, 8
push eax
lea ecx, [esi + 0x28]
mov byte [esp + 0x16c], 0x3e
call fcn.005068c0
lea ecx, [esp + 0x5c]
call fcn.004de7e0
lea ecx, [esp + 0x70]
call fcn.004de7e0
lea ecx, [esp + 0x84]
call fcn.004de7e0
lea ecx, [esp + 0x48]
call fcn.004de7e0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x168], 0x23
call fcn.004de7e0
push 2
lea ecx, [esp + 0x4c]
call fcn.00506620
lea edx, [esp + 0x48]
lea ecx, [esi + 0x28]
call fcn.0050c980
lea ecx, [esp + 0x48]
mov bl, al
call fcn.004de7e0
test bl, bl
jne 0x5110f0
lea ecx, [esp + 0x30]
call fcn.004de7e0
lea ecx, [esp + 0xf0]
call fcn.004de7e0
lea ecx, [esp + 0xc8]
call fcn.004de7e0
lea ecx, [esp + 0xdc]
call fcn.004de7e0
mov ecx, dword [esp + 0x160]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10