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

Disassembly:
mov eax, 0xac
call fcn.005c8080
mov eax, dword [0x678dc8]
xor eax, esp
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
push ebx
push ebp
mov ebp, dword [esp + 0xb8]
xor ebx, ebx
push esi
mov esi, dword [esp + 0xd0]
push edi
xor edi, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x74], ebx
cmp dword [esp + 0xc8], ebx
jne 0x542c15
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x3c], eax
jmp 0x542c19
mov dword [esp + 0x3c], ebx
mov dword [edx], ebx
mov ecx, dword [ecx + 0x2c]
test ecx, ecx
jne 0x542c6b
test esi, esi
jne 0x542c3c
cmp dword [esp + 0xd0], 0x800
sbb esi, esi
and esi, 0xffffffa0
add esi, 0x100
cmp esi, 0xa0
jne 0x542c4b
mov ecx, str.SHA1
jmp 0x542c6b
cmp esi, 0xe0
jne 0x542c5a
mov ecx, str.SHA_224
jmp 0x542c6b
cmp esi, 0x100
jne 0x54365b
mov ecx, str.SHA_256
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x30]
push eax
push ecx
push ebp
call fcn.004af250
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x38], ebx
mov edi, ebx
test ebx, ebx
je 0x5435df
push ebx
call fcn.004ab140
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x5435df
mov ecx, dword [esp + 0xd0]
lea ebx, [eax*8]
test esi, esi
cmovne ebx, esi
mov eax, ebx
shr eax, 3
mov dword [esp + 0x60], eax
cmp ecx, ebx
jbe 0x5435d1
mov eax, dword [esp + 0xcc]
cmp eax, 1
jne 0x542d1d
cmp ecx, 0x400
jne 0x542ce4
cmp ebx, 0xa0
jne 0x542cfc
jmp 0x542d61
cmp ecx, 0x800
jne 0x542cfc
cmp ebx, 0xe0
je 0x542d61
cmp ebx, 0x100
je 0x542d61
call fcn.004a93e0
push 0x635584
push 0
push 0x66ed1f
call fcn.004a94e0
push 0
push 0x7f
push 5
jmp 0x5435c9
test eax, eax
jne 0x5435d1
cmp ecx, 0xc00
jb 0x542d37
cmp ebx, 0x100
jb 0x542d3f
jmp 0x542d61
cmp ecx, 0x800
jb 0x542d49
cmp ebx, 0xe0
jb 0x542d55
jmp 0x542d61
cmp ecx, 0x400
jb 0x5435ad
cmp ebx, 0xa0
jb 0x5435ad
call fcn.004af0b0
mov edi, dword [esp + 0x38]
mov dword [esp + 0x74], eax
test eax, eax
je 0x5435df
push ebp
call fcn.00517a30
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
mov ebp, edi
test esi, esi
je 0x5435e1
push esi
call fcn.00517b00
push esi
call fcn.005178c0
push esi
mov dword [esp + 0x4c], eax
call fcn.005178c0
push esi
mov dword [esp + 0x78], eax
call fcn.005178c0
push esi
mov dword [esp + 0x4c], eax
call fcn.005178c0
push esi
mov dword [esp + 0x74], eax
call fcn.005178c0
add esp, 0x18
mov dword [esp + 0x44], eax
test eax, eax
je 0x5435e1
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x14]
test eax, eax
cmove eax, dword [esp + 0x2c]
xor esi, esi
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x10]
test eax, eax
cmovne esi, eax
cmp dword [esp + 0xc8], 0
mov dword [esp + 0x24], esi
je 0x542e45
xor ecx, ecx
cmp dword [edi + 4], ecx
sete cl
xor eax, eax
cmp dword [edi], eax
sete al
cmp eax, ecx
je 0x542e24
mov eax, dword [esp + 0x14]
mov dword [eax], 0x800
mov edi, ebp
mov esi, dword [esp + 0x10]
jmp 0x5435e1
mov eax, dword [esp + 0x3c]
and eax, 1
mov ecx, dword [edi]
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x542e8f
test eax, eax
jne 0x542e8f
mov eax, dword [edi + 4]
mov dword [esp + 0x34], eax
jmp 0x543229
mov ecx, dword [esp + 0x3c]
mov eax, ecx
and eax, 1
je 0x542e6f
test esi, esi
je 0x542e5a
cmp dword [edi + 0x18], 0
jge 0x542e6f
mov eax, dword [esp + 0x14]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov dword [eax], 0x200
jmp 0x5435e1
test cl, 2
je 0x542e2b
cmp dword [edi + 8], 0
jne 0x542e2b
mov eax, dword [esp + 0x14]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov dword [eax], 0x400
jmp 0x5435e1
mov edi, dword [esp + 0x10]
push edi
call fcn.005178c0
push edi
mov dword [esp + 0x28], eax
call fcn.005178c0
add esp, 8
mov dword [esp + 0x34], eax
mov edi, ebp
test eax, eax
je 0x542e1b
mov ecx, dword [esp + 0x28]
lea eax, [ecx*8]
cmp eax, ebx
jae 0x542ed6
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x100
jmp 0x5435e1
push 0
push 0x66ed1f
push ecx
call fcn.004a4e80
add esp, 0xc
mov dword [esp + 0x48], eax
mov edi, ebp
test eax, eax
je 0x542e1b
test esi, esi
jne 0x542f37
cmp dword [esp + 0xc8], esi
jne 0x542f14
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x200
jmp 0x5435e1
push 0
push 0x66ed1f
push dword [esp + 0x30]
call fcn.004a4e80
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x24], ecx
mov edi, ebp
test ecx, ecx
je 0x542e1b
cmp dword [esp + 0xc8], 0
mov ecx, dword [esp + 0xd0]
lea ebx, [ecx*4 - 1]
mov dword [esp + 0x50], ebx
jne 0x542f77
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x18]
cmp eax, ebx
jle 0x542f73
mov eax, dword [esp + 0x14]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov dword [eax], 0x1000
jmp 0x5435e1
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x2c]
lea esi, [ecx - 1]
xor edx, edx
mov edi, ebp
push esi
lea ecx, [eax*8]
mov eax, esi
div ecx
mov dword [esp + 0x68], eax
call fcn.004c0520
push eax
push dword [esp + 0x64]
call fcn.004e5d10
add esp, 0xc
test eax, eax
je 0x542e1b
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x4c]
push ebp
mov dword [esp + 0x30], eax
call fcn.004ab140
push dword [esp + 0x14]
mov edi, eax
call fcn.00517bf0
push esi
push 0
push dword [esp + 0x40]
mov dword [esp + 0x74], eax
call fcn.00583ef0
add esp, 0x14
test eax, eax
je 0x542e19
nop dword [eax + eax]
inc esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x2c]
je 0x54301e
push 0
push dword [esp + 0x2c]
push esi
push dword [esp + 0x6c]
call fcn.004bd710
add esp, 0x10
test eax, eax
js 0x542e19
push 0
push ebp
push 0
lea eax, [esp + 0x84]
push eax
push dword [esp + 0x38]
push esi
call fcn.004ae620
add esp, 0x18
test eax, eax
je 0x542e19
lea esi, [esp + 0x78]
cmp edi, ebx
jle 0x543050
mov eax, edi
sub eax, ebx
add esi, eax
jmp 0x543068
jge 0x543068
mov eax, ebx
sub eax, edi
push eax
lea eax, [esp + 0x7c]
add eax, edi
push 0
push eax
call fcn.005c9580
add esp, 0xc
push dword [esp + 0x34]
or byte [esi], 0x80
or byte [esi + ebx - 1], 1
push ebx
push esi
call fcn.004bf890
add esp, 0xc
test eax, eax
je 0x542e19
push dword [esp + 0x30]
mov esi, dword [esp + 0x38]
push dword [esp + 0x14]
push esi
call fcn.00583f40
add esp, 0xc
test eax, eax
jg 0x5430da
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x24], ecx
je 0x5431a3
test eax, eax
jne 0x542e19
mov esi, dword [esp + 0x5c]
push esi
push eax
push dword [esp + 0x38]
call fcn.00583ef0
add esp, 0xc
test eax, eax
jne 0x542ff0
mov esi, dword [esp + 0x10]
mov edi, ebp
jmp 0x5435e1
cmp dword [esp + 0xc8], 0
mov edi, dword [esp + 0x1c]
jne 0x5430fc
push dword [edi + 4]
push esi
call fcn.004bfb30
add esp, 8
test eax, eax
jne 0x5431b5
mov esi, dword [esp + 0x30]
push 0
push 2
push esi
call fcn.00583ef0
add esp, 0xc
test eax, eax
je 0x542e19
push 0
push 3
push esi
call fcn.00583ef0
add esp, 0xc
test eax, eax
je 0x542e19
push dword [esp + 0x28]
mov esi, dword [esp + 0x28]
push esi
push dword [esp + 0x50]
call fcn.005c9000
push dword [esp + 0x20]
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x44]
push dword [esp + 0xe8]
push dword [esp + 0x3c]
push dword [esp + 0x54]
push dword [esp + 0x4c]
push dword [esp + 0x70]
push dword [esp + 0x90]
push dword [esp + 0x80]
push ebp
push dword [esp + 0x48]
call fcn.00541f00
add esp, 0x3c
test eax, eax
jg 0x5431ca
js 0x542e19
cmp esi, dword [edi + 0x10]
jne 0x542fb4
mov eax, dword [esp + 0x14]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov dword [eax], 1
jmp 0x5435e1
mov eax, dword [esp + 0x14]
mov edi, ebp
mov esi, dword [esp + 0x10]
or dword [eax], 0x10
jmp 0x5435e1
mov eax, dword [esp + 0x14]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov dword [eax], 0x4000
jmp 0x5435e1
push 1
push 2
push dword [esp + 0x38]
mov edi, ebp
call fcn.00583ef0
add esp, 0xc
test eax, eax
je 0x542e1b
cmp dword [esp + 0xc8], 0
jne 0x54321b
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x54], eax
jne 0x542e19
mov ebx, dword [esp + 0x1c]
push dword [ebx]
push dword [esp + 0x24]
call fcn.004bfb30
add esp, 8
test eax, eax
je 0x54321b
mov esi, dword [esp + 0x10]
jmp 0x5435e1
mov eax, dword [esp + 0x3c]
and al, 3
cmp al, 1
je 0x543577
call fcn.00506230
mov ebx, eax
mov edi, ebp
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x543668
push dword [esp + 0x10]
push dword [esp + 0x24]
push ebx
call fcn.005062b0
add esp, 0xc
test eax, eax
je 0x543668
test byte [esp + 0x3c], 2
mov ebx, dword [esp + 0x1c]
je 0x54328d
push dword [esp + 0x14]
push dword [esp + 0x48]
push dword [ebx + 8]
push dword [esp + 0x40]
push dword [esp + 0x30]
push dword [esp + 0x2c]
push dword [esp + 0x28]
call fcn.005651b0
add esp, 0x1c
test eax, eax
je 0x543469
call fcn.004c0520
mov edi, dword [esp + 0x68]
push eax
push dword [esp + 0x24]
push edi
call fcn.00517c90
add esp, 0xc
test eax, eax
je 0x543467
push dword [esp + 0x10]
push dword [esp + 0x38]
push edi
push 0
push dword [esp + 0x48]
call fcn.00517eb0
add esp, 0x14
test eax, eax
je 0x543467
test esi, esi
je 0x543476
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x64], eax
cmp eax, 0xffffffff
je 0x543476
push ebp
mov dword [esp + 0x74], 1
mov dword [esp + 0x30], 0
call fcn.004ab140
mov edi, eax
add esp, 4
test edi, edi
jle 0x54345d
call fcn.004af0b0
mov esi, eax
test esi, esi
je 0x54345d
mov ebx, 1
nop word [eax + eax]
mov eax, dword [esp + 0x64]
mov byte [esp + 0x78], al
mov eax, ebx
push 0
sar eax, 8
push ebp
push esi
mov byte [esp + 0x85], al
mov byte [esp + 0x86], bl
call fcn.004aea40
add esp, 0xc
test eax, eax
je 0x54340f
push dword [esp + 0x28]
push dword [esp + 0x28]
push esi
call fcn.004aea80
add esp, 0xc
test eax, eax
je 0x54340f
push 4
push str.ggenffc_validate_LN
push esi
call fcn.004aea80
add esp, 0xc
test eax, eax
je 0x54340f
push 3
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.004aea80
add esp, 0xc
test eax, eax
je 0x54340f
push 0
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.004ae920
add esp, 0xc
test eax, eax
je 0x54340f
push dword [esp + 0x44]
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.004bf890
add esp, 0xc
test eax, eax
je 0x54340f
push dword [esp + 0x18]
push dword [esp + 0x14]
push dword [esp + 0x28]
push dword [esp + 0x44]
push dword [esp + 0x54]
push dword [esp + 0x54]
call fcn.00518450
add esp, 0x18
test eax, eax
je 0x54340f
call fcn.004c0520
push eax
push dword [esp + 0x44]
call fcn.004bfb30
add esp, 8
test eax, eax
jg 0x543407
inc ebx
cmp ebx, 0xffff
jle 0x543320
jmp 0x54340f
mov dword [esp + 0x2c], 1
push esi
call fcn.004af020
add esp, 4
cmp dword [esp + 0x2c], 0
je 0x54345d
cmp dword [esp + 0xc8], 0
jne 0x5434b2
mov eax, dword [esp + 0x1c]
push dword [eax + 8]
push dword [esp + 0x44]
call fcn.004bfb30
add esp, 8
test eax, eax
je 0x5434b2
mov eax, dword [esp + 0x14]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [eax], 0x8000
jmp 0x5435e3
mov eax, dword [esp + 0x14]
mov dword [eax], 0x400
mov edi, ebp
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x5435e3
cmp dword [esp + 0xc8], 0
mov ebx, dword [esp + 0x20]
je 0x5434ba
lea eax, [esp + 0x6c]
mov edi, ebp
push eax
push dword [esp + 0x6c]
push dword [esp + 0x40]
push ebx
push dword [esp + 0x54]
push dword [esp + 0x54]
push dword [esp + 0x30]
push dword [esp + 0x2c]
call fcn.00542420
add esp, 0x20
test eax, eax
je 0x543469
jmp 0x5434ba
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
push 1
push 3
push dword [esp + 0x38]
mov edi, ebp
call fcn.00583ef0
add esp, 0xc
test eax, eax
je 0x543469
cmp dword [esp + 0xc8], 0
je 0x543577
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
cmp ebx, eax
je 0x5434f9
push eax
call fcn.004bfe40
push ebx
call fcn.004bfd70
add esp, 8
mov dword [edi], eax
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x34]
cmp ebx, eax
je 0x543516
push eax
call fcn.004bfe40
push ebx
call fcn.004bfd70
add esp, 8
mov dword [edi + 4], eax
mov eax, dword [edi + 8]
mov ebx, dword [esp + 0x40]
cmp ebx, eax
je 0x543533
push eax
call fcn.004bfe40
push ebx
call fcn.004bfd70
add esp, 8
mov dword [edi + 8], eax
cmp dword [edi], 0
je 0x543467
cmp dword [edi + 4], 0
je 0x543467
cmp dword [edi + 8], 0
je 0x543467
push dword [esp + 0x54]
mov ebx, dword [esp + 0x20]
mov edi, ebp
push dword [esp + 0x2c]
push esi
push ebx
call fcn.0052b320
add esp, 0x10
test eax, eax
je 0x543469
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x24], eax
test byte [esp + 0x3c], 2
je 0x543599
cmp dword [esp + 0x70], 0
jne 0x543599
mov esi, dword [esp + 0x10]
mov edi, ebp
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x58], 2
jmp 0x5435e3
mov esi, dword [esp + 0x10]
mov edi, ebp
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x58], 1
jmp 0x5435e3
call fcn.004a93e0
push 0x635584
push 0
push 0x66ed1f
call fcn.004a94e0
push 0
push 0x72
push 0xa
call fcn.004a94f0
add esp, 0x18
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
mov dword [eax], 0x80
xor esi, esi
xor ebx, ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
cmp ecx, dword [eax + 0x10]
je 0x543600
push 0
push 0x66ed1f
push ecx
call fcn.004a4eb0
add esp, 0xc
push 0
push 0x66ed1f
push dword [esp + 0x50]
call fcn.004a4eb0
add esp, 0xc
test esi, esi
je 0x543620
push esi
call fcn.005177c0
add esp, 4
push esi
call fcn.00517830
push ebx
call fcn.005061f0
push dword [esp + 0x7c]
call fcn.004af020
push edi
call fcn.004af280
mov ecx, dword [esp + 0xc8]
add esp, 0x10
mov eax, dword [esp + 0x58]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005c77ea
add esp, 0xac
ret
mov dword [edx], 0x20
xor esi, esi
jmp 0x5435e3
mov esi, dword [esp + 0x10]
jmp 0x5435e3