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

Disassembly:
mov eax, 0xc8
call fcn.00533fa0
mov eax, dword [0x5c49f0]
xor eax, esp
mov dword [esp + 0xc4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x78], eax
xor ebx, ebx
mov eax, dword [esp + 0x104]
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0xe4]
mov eax, esi
shr eax, 3
mov dword [esp + 0x64], eax
mov eax, 2
mov dword [esp + 0x30], eax
lea eax, [esp + 0x7c]
push eax
mov dword [esp + 0x54], ecx
xor edi, edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x38], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x14], ebx
call fcn.004cd620
mov eax, dword [esp + 0x20]
add esp, 4
test eax, eax
jne 0x521af5
cmp esi, 0xa0
jne 0x521add
call fcn.004d65f0
jmp 0x521af1
cmp esi, 0xe0
jne 0x521aec
call fcn.004d6600
jmp 0x521af1
call fcn.004d6610
mov dword [esp + 0x1c], eax
push eax
call fcn.004d09a0
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x50]
mov dword [esp + 0x2c], esi
cmp dword [eax + 0xc], ebx
je 0x521b1b
cmp dword [eax + 0x10], ebx
je 0x521b1b
cmp dword [esp + 0xf4], ebx
jl 0x521b7b
test ebp, ebp
push 0x1be
cmove ebp, esi
push 0x59f670
push ebp
mov dword [esp + 0x24], ebp
call fcn.004bb0f0
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x521b54
push 0x1c3
push 0x59f670
push ebp
call fcn.004bb0f0
add esp, 0xc
mov dword [esp + 0x34], eax
test ebx, ebx
je 0x521fe4
test eax, eax
je 0x521fd7
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x521b7b
push ebp
push eax
push ebx
call fcn.005366a0
add esp, 0xc
call fcn.004d3930
mov ebp, eax
mov dword [esp + 0x10], ebp
test ebp, ebp
je 0x521fd7
call fcn.004feed0
mov dword [esp + 0x40], eax
test eax, eax
je 0x521fd7
push ebp
call fcn.004d39b0
push ebp
call fcn.004d38d0
push dword [esp + 0x18]
mov ebp, eax
call fcn.004d38d0
push dword [esp + 0x1c]
mov dword [esp + 0x64], eax
call fcn.004d38d0
push dword [esp + 0x20]
mov dword [esp + 0x5c], eax
call fcn.004d38d0
push dword [esp + 0x24]
mov dword [esp + 0x88], eax
call fcn.004d38d0
push dword [esp + 0x28]
mov dword [esp + 0x7c], eax
call fcn.004d38d0
mov ecx, dword [esp + 0x6c]
add esp, 0x1c
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x20], eax
test eax, eax
je 0x521c31
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x28], eax
test eax, eax
je 0x521c31
cmp dword [esp + 0xf4], edi
jl 0x522066
push dword [esp + 0x18]
push ebx
push dword [esp + 0x3c]
call fcn.005366a0
add esp, 0xc
jmp 0x522066
mov esi, dword [esp + 0x10]
push esi
call fcn.004d38d0
push esi
mov dword [esp + 0x28], eax
call fcn.004d38d0
mov dword [esp + 0x30], eax
add esp, 8
mov eax, dword [esp + 0xe0]
dec eax
mov dword [esp + 0x6c], eax
push eax
call fcn.004bdab0
push eax
push dword [esp + 0x1c]
call fcn.004f37d0
add esp, 0xc
test eax, eax
je 0x521fd7
mov esi, dword [esp + 0x3c]
nop word [eax + eax]
mov edi, dword [esp + 0x64]
push dword [esp + 0x44]
push 0
push dword [esp + 0x2c]
call fcn.0051f280
inc dword [esp + 0x50]
add esp, 0xc
test eax, eax
je 0x521fd7
test esi, esi
jne 0x521cbb
push dword [esp + 0x18]
push ebx
call fcn.004c4880
add esp, 8
test eax, eax
jle 0x521fd7
push 0
push dword [esp + 0x20]
lea eax, [esp + 0x9c]
push 0
push eax
push dword [esp + 0x28]
push ebx
call fcn.004cd090
add esp, 0x18
test eax, eax
je 0x521fd7
mov ecx, dword [esp + 0x2c]
lea esi, [esp + 0x94]
cmp ecx, edi
jle 0x521cf7
mov eax, ecx
sub eax, edi
add esi, eax
cmp ecx, edi
jge 0x521d12
mov eax, edi
sub eax, ecx
push eax
lea eax, [esp + 0x98]
add eax, ecx
push 0
push eax
call fcn.00536540
add esp, 0xc
push dword [esp + 0x28]
or byte [esi], 0x80
or byte [esi + edi - 1], 1
push edi
push esi
call fcn.004bd0e0
add esp, 0xc
test eax, eax
je 0x521fd7
push dword [esp + 0x24]
mov esi, dword [esp + 0x40]
xor eax, eax
test esi, esi
setne al
push eax
push dword [esp + 0x18]
push 0x32
push dword [esp + 0x38]
call fcn.0051f550
add esp, 0x14
test eax, eax
jg 0x521d75
jne 0x521fd7
test esi, esi
je 0x521c84
push 0x210
push 0x59f670
push 0x71
jmp 0x521fc3
mov eax, dword [esp + 0x58]
test eax, eax
je 0x521d8b
push dword [esp + 0x18]
push ebx
push eax
call fcn.005366a0
add esp, 0xc
mov esi, dword [esp + 0x24]
push 0
push 2
push esi
call fcn.0051f280
add esp, 0xc
test eax, eax
je 0x521fd7
push 0
push 3
push esi
call fcn.0051f280
add esp, 0xc
test eax, eax
je 0x521fd7
mov ecx, dword [esp + 0x2c]
xor edi, edi
mov eax, dword [esp + 0xe0]
xor edx, edx
shl ecx, 3
dec eax
div ecx
mov dword [esp + 0x4c], edi
mov esi, eax
mov dword [esp + 0x5c], esi
test edi, edi
je 0x521df3
push edi
push 0
push dword [esp + 0x2c]
call fcn.0051f280
add esp, 0xc
test eax, eax
je 0x521fd7
push 0
push dword [esp + 0x4c]
call fcn.004bda00
add esp, 8
xor edi, edi
test esi, esi
js 0x521eb8
mov ecx, dword [esp + 0x18]
xor esi, esi
lea eax, [ecx - 1]
mov dword [esp + 0x68], eax
test eax, eax
js 0x521e2b
nop dword [eax]
add byte [eax + ebx], 1
jne 0x521e2b
sub eax, 1
jns 0x521e20
push 0
push dword [esp + 0x20]
lea eax, [esp + 0x9c]
push 0
push eax
push ecx
push ebx
call fcn.004cd090
add esp, 0x18
test eax, eax
je 0x521fd7
push ebp
push dword [esp + 0x30]
lea eax, [esp + 0x9c]
push eax
call fcn.004bd0e0
add esp, 0xc
test eax, eax
je 0x521fd7
push esi
push ebp
push ebp
call fcn.004f37d0
add esp, 0xc
test eax, eax
je 0x521fd7
mov eax, dword [esp + 0x48]
push ebp
push eax
push eax
call fcn.004e6140
add esp, 0xc
test eax, eax
je 0x521fd7
mov ecx, dword [esp + 0x2c]
inc edi
lea eax, [ecx*8]
mov ecx, dword [esp + 0x18]
add esi, eax
mov eax, dword [esp + 0x68]
cmp edi, dword [esp + 0x5c]
jle 0x521e18
mov esi, dword [esp + 0x5c]
push dword [esp + 0x6c]
mov edi, dword [esp + 0x4c]
push edi
call fcn.004bd790
add esp, 8
test eax, eax
je 0x521fd7
push edi
mov edi, dword [esp + 0x74]
push edi
call fcn.004bd5e0
add esp, 8
test eax, eax
je 0x521fd7
push dword [esp + 0x14]
push edi
push edi
call fcn.004e6140
add esp, 0xc
test eax, eax
je 0x521fd7
push dword [esp + 0x28]
push ebp
call fcn.004f3950
add esp, 8
test eax, eax
je 0x521fd7
push dword [esp + 0x10]
push ebp
push edi
push dword [esp + 0x6c]
push 0
call fcn.00511650
add esp, 0x14
test eax, eax
je 0x521fd7
call fcn.004bdab0
push eax
push dword [esp + 0x64]
push ebp
call fcn.004e61d0
add esp, 0xc
test eax, eax
je 0x521fd7
push ebp
push edi
mov edi, dword [esp + 0x28]
push edi
call fcn.004e61d0
add esp, 0xc
test eax, eax
je 0x521fd7
push dword [esp + 0x14]
push edi
call fcn.004bd290
add esp, 8
test eax, eax
js 0x521f90
mov edi, dword [esp + 0x24]
push edi
push 1
push dword [esp + 0x18]
push 0x32
push dword [esp + 0x30]
call fcn.0051f550
add esp, 0x14
test eax, eax
jg 0x522049
jne 0x521fd7
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0xe0]
inc edi
shl eax, 2
mov dword [esp + 0x4c], edi
cmp edi, eax
jl 0x521dd8
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x521c80
push 0x269
push 0x59f670
push 0x70
push 0x7e
push 0xa
mov dword [esp + 0x4c], 0
call fcn.004c7510
add esp, 0x14
test ebx, ebx
je 0x521fe4
push ebx
call fcn.004bb070
add esp, 4
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x58], eax
je 0x521ff7
push eax
call fcn.004bb070
add esp, 4
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x52200e
push ebx
call fcn.004d3860
push ebx
call fcn.004d38a0
add esp, 8
mov eax, dword [esp + 0x40]
pop edi
pop esi
pop ebp
pop ebx
test eax, eax
je 0x522023
push eax
call fcn.004fee90
add esp, 4
lea eax, [esp + 0x6c]
push eax
call fcn.004cd3c0
mov ecx, dword [esp + 0xc8]
add esp, 4
mov eax, dword [esp + 0x28]
xor ecx, esp
call fcn.0053342f
add esp, 0xc8
ret
push 1
push 2
push edi
call fcn.0051f280
add esp, 0xc
test eax, eax
je 0x521fd7
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x2c]
call fcn.004bdab0
push eax
push dword [esp + 0x24]
push dword [esp + 0x1c]
call fcn.004e61d0
add esp, 0xc
test eax, eax
je 0x521fd7
push dword [esp + 0x10]
push dword [esp + 0x2c]
push dword [esp + 0x1c]
push 0
push ebp
call fcn.00511650
add esp, 0x14
test eax, eax
je 0x521fd7
cmp dword [esp + 0xf4], 0
jge 0x5220c5
push 2
push dword [esp + 0x18]
call fcn.004bda00
add esp, 8
test eax, eax
je 0x521fd7
jmp 0x5220ce
mov eax, 1
mov dword [esp + 0x30], eax
push dword [esp + 0x10]
push dword [esp + 0x24]
push dword [esp + 0x48]
call fcn.004fef30
add esp, 0xc
test eax, eax
je 0x521fd7
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x30]
test eax, eax
js 0x5221d5
mov byte [esp + 0x94], al
mov eax, ecx
shr eax, 8
push 0
push dword [esp + 0x20]
mov byte [esp + 0x9d], al
lea eax, [esp + 0x84]
push eax
mov byte [esp + 0xa2], cl
call fcn.004cd200
add esp, 0xc
test eax, eax
je 0x521fd7
push dword [esp + 0x18]
lea eax, [esp + 0x80]
push dword [esp + 0x38]
push eax
call fcn.004cd3b0
add esp, 0xc
test eax, eax
je 0x521fd7
push 4
lea eax, [esp + 0x80]
push str.ggen.cryptodsadsa_gen.c
push eax
call fcn.004cd3b0
add esp, 0xc
test eax, eax
je 0x521fd7
push 3
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x84]
push eax
call fcn.004cd3b0
add esp, 0xc
test eax, eax
je 0x521fd7
push 0
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x84]
push eax
call fcn.004cd160
add esp, 0xc
test eax, eax
je 0x521fd7
push dword [esp + 0x14]
lea eax, [esp + 0x98]
push esi
push eax
call fcn.004bd0e0
add esp, 0xc
test eax, eax
je 0x521fd7
push dword [esp + 0x40]
push dword [esp + 0x14]
push dword [esp + 0x28]
push ebp
push dword [esp + 0x24]
push dword [esp + 0x68]
call fcn.004fd8c0
add esp, 0x18
test eax, eax
je 0x521fd7
mov ecx, dword [esp + 0x54]
cmp dword [ecx + 4], 1
jne 0x52225d
mov eax, dword [ecx]
cmp dword [eax], 1
jne 0x52225d
cmp dword [ecx + 0xc], 0
jne 0x52225d
mov eax, dword [esp + 0xf4]
test eax, eax
jns 0x52223f
call fcn.004bdab0
push eax
mov eax, dword [esp + 0x18]
push eax
push eax
call fcn.004e6140
add esp, 0xc
test eax, eax
je 0x521fd7
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x30], ecx
test eax, eax
js 0x5221d5
cmp ecx, 0xffff
jbe 0x5220f5
jmp 0x521fd7
push 1
push 3
push dword [esp + 0x2c]
call fcn.0051f280
add esp, 0xc
test eax, eax
je 0x521fd7
mov dword [esp + 0x38], 1
nop dword [eax]
mov esi, dword [esp + 0x50]
mov ebp, dword [esp + 0x20]
mov eax, dword [esi + 0xc]
cmp ebp, eax
je 0x5222a8
test eax, eax
je 0x52229c
push eax
call fcn.004bd6f0
add esp, 4
push ebp
call fcn.004bd6b0
add esp, 4
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
mov ebp, dword [esp + 0x28]
cmp ebp, eax
je 0x5222cc
test eax, eax
je 0x5222c0
push eax
call fcn.004bd6f0
add esp, 4
push ebp
call fcn.004bd6b0
add esp, 4
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x14]
test eax, eax
je 0x5222dc
push eax
call fcn.004bd6f0
add esp, 4
push dword [esp + 0x54]
call fcn.004bd6b0
add esp, 4
mov dword [esi + 0x14], eax
cmp dword [esi + 0xc], 0
je 0x52231c
cmp dword [esi + 0x10], 0
je 0x52231c
test eax, eax
je 0x52231c
mov eax, dword [esp + 0x74]
test eax, eax
je 0x522305
mov dword [eax], edi
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x521fd7
mov eax, dword [esp + 0x30]
mov dword [ecx], eax
jmp 0x521fd7
mov dword [esp + 0x38], 0xffffffff
jmp 0x521fd7