Function at 0x51e100
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x3a4
push ebx
push ebp
mov ebp, dword [esp + 0x3b0]
push esi
push edi
xor ebx, ebx
mov eax, dword [ebp + 0x1c]
cmp eax, 0x31787662
ja 0x51eb23
je 0x51ec52
cmp eax, ebx
je 0x51e19c
cmp eax, 0x2d787662
jne 0x51eca2
mov eax, dword [ebp + 0xb8e4]
cmp eax, ebx
jne 0x51e145
mov dword [ebp + 0x1c], ebx
jmp 0x51e113
mov ecx, dword [ebp + 8]
mov esi, dword [ebp]
cmp ecx, esi
jbe 0x51eccf
sub ecx, esi
cmp eax, ecx
jbe 0x51e15b
mov eax, ecx
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
cmp ecx, edi
jbe 0x51ecbf
sub ecx, edi
cmp eax, ecx
jbe 0x51e171
mov eax, ecx
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp]
mov edx, dword [ebp + 0xc]
add esi, eax
add edx, eax
mov dword [ebp], esi
mov dword [ebp + 0xc], edx
sub dword [ebp + 0xb8e4], eax
jmp 0x51e113
mov esi, dword [ebp]
mov ecx, dword [ebp + 8]
lea eax, [esi + 4]
cmp eax, ecx
ja 0x51eccf
mov edx, dword [esi]
cmp edx, 0x24787662
mov dword [esp + 0x54], edx
je 0x51ec85
cmp edx, 0x2d787662
jne 0x51e1eb
add esi, 8
cmp esi, ecx
ja 0x51eccf
mov eax, dword [eax]
mov dword [ebp + 0xb8e4], eax
mov eax, dword [ebp]
add eax, 8
mov dword [ebp + 0x1c], edx
mov dword [ebp], eax
jmp 0x51e113
cmp edx, 0x6e787662
jne 0x51e229
add esi, 0xc
cmp esi, ecx
ja 0x51eccf
mov eax, dword [eax]
mov dword [ebp + 0xb8d8], eax
mov eax, dword [ebp]
mov eax, dword [eax + 8]
mov dword [ebp + 0xb8e0], ebx
mov dword [ebp + 0xb8dc], eax
mov eax, dword [ebp]
add eax, 0xc
mov dword [ebp + 0x1c], edx
mov dword [ebp], eax
jmp 0x51e113
cmp edx, 0x31787662
je 0x51e490
cmp edx, 0x32787662
jne 0x51eca2
lea edx, [esi + 0x20]
cmp edx, ecx
ja 0x51eccf
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x18], eax
add eax, esi
cmp eax, ecx
mov dword [esp + 0x24], edx
ja 0x51eccf
mov ecx, 0xc0
xor eax, eax
lea edi, [esp + 0xb0]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0xb0], 0x31787662
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0xb4], ecx
mov ecx, eax
and ecx, 0xfffff
mov dword [esp + 0x48], eax
mov dword [esp + 0xbc], ecx
mov ecx, 0x14
mov dword [esp + 0x4c], edx
call fcn.00526f40
and eax, 0xfffff
mov ecx, 0xa
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x4c]
shr eax, 0x1c
and eax, 7
mov edx, ebx
add eax, 0xfffffff9
mov dword [esp + 0xcc], eax
mov eax, edi
and eax, 0x3ff
mov word [esp + 0xd0], ax
mov eax, edi
call fcn.00526f40
push 0xa
push 0x14
and eax, 0x3ff
push ebx
push edi
mov word [esp + 0xe2], ax
call fcn.0051ed20
push 0xa
push 0x1e
push ebx
push edi
mov word [esp + 0xf4], ax
call fcn.0051ed20
mov edx, dword [esp + 0x6c]
mov word [esp + 0xf6], ax
mov eax, dword [esp + 0x68]
push 0x14
push 0x28
push edx
push eax
call fcn.0051ed20
push 0x14
push 0x28
push ebx
push edi
mov dword [esp + 0x100], eax
call fcn.0051ed20
add esp, 0x40
mov dword [esp + 0xc8], eax
push 3
push 0x3c
push ebx
push edi
call fcn.0051ed20
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
push 0xa
push 0x20
sub eax, 7
push ebx
push edi
mov dword [esp + 0xf8], eax
call fcn.0051ed20
mov word [esp + 0xfc], ax
push 0xa
push 0x2a
push ebx
push edi
call fcn.0051ed20
push 0xa
push 0x34
push ebx
push edi
mov word [esp + 0x11e], ax
call fcn.0051ed20
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x108]
add esp, 0x40
mov word [esp + 0xe0], ax
mov eax, dword [esp + 0x44]
add edx, ecx
push 0x20
push 0
push eax
push edi
mov dword [esp + 0xc8], edx
lea ebx, [esi + 0x20]
call fcn.0051ed20
mov edi, eax
add esp, 0x10
add edi, esi
xor esi, esi
cmp edi, ebx
mov dword [esp + 0x10], esi
je 0x51e4b6
lea ecx, [esp + 0xe2]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], ecx
mov eax, esi
cmp ebx, edi
jae 0x51e42c
cmp esi, 0x18
jg 0x51e428
xor edx, edx
mov ecx, esi
mov dl, byte [ebx]
add esi, 8
shl edx, cl
or eax, edx
inc ebx
cmp ebx, edi
jb 0x51e411
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x2c]
push eax
push ecx
mov dword [esp + 0x34], 0
call fcn.0051ece0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
add esp, 8
cmp ecx, esi
mov word [edx], ax
jg 0x51eca2
mov eax, dword [esp + 0x10]
sub esi, ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
add edx, 2
inc ecx
mov dword [esp + 0x14], edx
cmp ecx, 0x168
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
jl 0x51e40d
cmp esi, 8
jge 0x51eca2
cmp ebx, edi
jne 0x51eca2
jmp 0x51e4b6
lea eax, [esi + 0x302]
cmp eax, ecx
ja 0x51eccf
mov ecx, 0xc0
lea edi, [esp + 0xb0]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dword [esp + 0x18], 0x302
mov eax, dword [ebp]
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0xc4]
mov edx, dword [esp + 0x18]
add eax, ecx
mov ecx, dword [ebp + 8]
add eax, esi
add eax, edx
cmp eax, ecx
ja 0x51eccf
mov ebx, dword [esp + 0xb0]
mov edi, dword [esp + 0xbc]
xor edx, edx
cmp ebx, 0x31787662
mov eax, 0x9c40
setne dl
cmp eax, edi
mov edi, dword [esp + 0xc0]
sbb ecx, ecx
mov eax, 0x2710
and ecx, 2
or edx, ecx
cmp eax, edi
sbb ecx, ecx
and ecx, 4
or edx, ecx
cmp word [esp + 0xe0], 0x100
mov ecx, 0x40
sbb eax, eax
and eax, 0xfffffe00
add eax, 0x200
or edx, eax
mov eax, 0x400
cmp word [esp + 0xd6], ax
sbb esi, esi
and esi, 0xffffffc0
add esi, ecx
or edx, esi
cmp word [esp + 0xde], cx
sbb esi, esi
and esi, 0xffffff00
add esi, 0x100
or edx, esi
cmp word [esp + 0xdc], cx
mov esi, 0x14
sbb ecx, ecx
and ecx, 0xffffff80
add ecx, 0x80
or edx, ecx
cmp word [esp + 0xd4], ax
sbb ecx, ecx
and ecx, 0xffffffe0
add ecx, 0x20
or edx, ecx
cmp word [esp + 0xd2], ax
sbb ecx, ecx
and ecx, 0xfffffff0
add ecx, 0x10
or edx, ecx
cmp word [esp + 0xd0], ax
sbb eax, eax
and al, 0xf8
add eax, 8
or eax, edx
xor ecx, ecx
lea edx, [esp + 0xe2]
xor ebx, ebx
mov bx, word [edx]
add edx, 2
add ecx, ebx
dec esi
jne 0x51e5bb
mov edx, 0x40
mov esi, 0x14
cmp edx, ecx
lea edx, [esp + 0x10a]
sbb ecx, ecx
and ecx, 0x400
or eax, ecx
xor ecx, ecx
xor ebx, ebx
mov bx, word [edx]
add edx, 2
add ecx, ebx
dec esi
jne 0x51e5e7
mov edx, 0x40
mov esi, 0x40
cmp edx, ecx
lea edx, [esp + 0x132]
sbb ecx, ecx
and ecx, 0x800
or eax, ecx
xor ecx, ecx
xor ebx, ebx
mov bx, word [edx]
add edx, 2
add ecx, ebx
dec esi
jne 0x51e613
mov edx, 0x100
mov esi, 0x100
cmp edx, ecx
sbb ecx, ecx
and ecx, 0x1000
or eax, ecx
xor edx, edx
lea ecx, [esp + 0x1b2]
xor ebx, ebx
mov bx, word [ecx]
add ecx, 2
add edx, ebx
dec esi
jne 0x51e63f
mov ecx, 0x400
cmp ecx, edx
sbb edx, edx
and edx, 0x2000
or eax, edx
je 0x51e66c
or eax, 0x80000000
test eax, eax
jne 0x51eca2
mov eax, dword [ebp]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc8]
add eax, ecx
mov dword [ebp], eax
lea eax, [ebp + 0xc54]
lea ecx, [esp + 0x1b2]
push eax
push ecx
push 0x100
push 0x400
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x20], edi
call fcn.0051f250
lea edx, [ebp + 0x54]
lea eax, [esp + 0xf2]
push edx
push 0x66c4c8
push 0x66c4b4
push eax
push 0x14
push 0x40
call fcn.0051f380
lea ecx, [ebp + 0x254]
lea edx, [esp + 0x132]
push ecx
push 0x66c52c
push 0x66c518
push edx
push 0x14
push 0x40
call fcn.0051f380
add esp, 0x40
lea eax, [ebp + 0x454]
lea ecx, [esp + 0x132]
push eax
push 0x66c5bc
push 0x66c57c
push ecx
push 0x40
push 0x100
call fcn.0051f380
mov edx, dword [esp + 0xdc]
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
add esi, edx
mov dword [ebp], esi
mov eax, esi
mov esi, dword [esp + 0xe4]
add esp, 0x18
test esi, esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x10], eax
je 0x51ea29
add ecx, 8
cmp eax, ecx
jb 0x51eca2
mov ebx, dword [eax - 4]
mov edi, dword [eax - 8]
sub eax, 8
add esi, 0x40
cmp esi, 0x38
mov dword [esp + 0x10], eax
mov dword [esp + 0x6c], ebx
jl 0x51eca2
cmp esi, 0x40
jge 0x51eca2
mov ecx, esi
mov eax, edi
mov edx, ebx
call fcn.00526f40
or eax, edx
jne 0x51eca2
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd2]
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xd6]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xbc]
test eax, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], 0
jbe 0x51e9eb
mov eax, dword [esp + 0x10]
mov ecx, 0x3f
sub ecx, esi
and ecx, 0xfffffff8
mov edx, ecx
mov dword [esp + 0x1c], ecx
sar edx, 3
sub eax, edx
mov edx, dword [esp + 0x50]
cmp eax, edx
jb 0x51eca2
mov edx, dword [ecx*8 + 0x66c228]
mov ecx, dword [ecx*8 + 0x66c22c]
and edx, dword [eax]
and ecx, dword [eax + 4]
mov dword [esp + 0x10], eax
mov eax, edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], edx
mov edx, ebx
call fcn.00526fd0
mov ecx, dword [esp + 0x30]
or ecx, eax
mov eax, dword [esp + 0x20]
or eax, edx
mov edi, ecx
mov ecx, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x1c]
and ecx, 0xffff
add esi, eax
mov eax, dword [ebp + ecx*4 + 0xc54]
movsx edx, al
sub esi, edx
mov dword [esp + 0x20], eax
mov ecx, esi
mov eax, edi
mov edx, ebx
call fcn.00526f40
mov ecx, dword [esi*8 + 0x66c228]
mov dword [esp + 0x34], edx
mov edx, dword [esi*8 + 0x66c22c]
and edi, ecx
mov ecx, dword [esp + 0x20]
and ebx, edx
mov edx, ecx
sar edx, 0x10
add edx, eax
mov eax, ecx
mov dword [esp + 0x18], edx
mov ecx, 8
cdq
call fcn.00526f40
mov cl, byte [0x66c268]
mov edx, dword [esp + 0x28]
and al, cl
mov ecx, dword [esp + 0x14]
and edx, 0xffff
mov byte [ecx + ebp + 0x1c54], al
mov eax, dword [ebp + edx*4 + 0xc54]
mov edx, ebx
mov dword [esp + 0x20], eax
movsx eax, al
sub esi, eax
mov eax, edi
mov ecx, esi
call fcn.00526f40
mov ecx, dword [esi*8 + 0x66c228]
mov dword [esp + 0x34], edx
mov edx, dword [esi*8 + 0x66c22c]
and edi, ecx
mov ecx, dword [esp + 0x20]
and ebx, edx
mov edx, ecx
sar edx, 0x10
add edx, eax
mov eax, ecx
mov dword [esp + 0x28], edx
mov ecx, 8
cdq
call fcn.00526f40
mov cl, byte [0x66c268]
mov edx, dword [esp + 0x3c]
and al, cl
mov ecx, dword [esp + 0x14]
and edx, 0xffff
mov byte [ecx + ebp + 0x1c55], al
mov eax, dword [ebp + edx*4 + 0xc54]
mov dword [esp + 0x20], eax
movsx eax, al
sub esi, eax
mov ecx, esi
mov eax, edi
mov edx, ebx
call fcn.00526f40
mov ecx, dword [esi*8 + 0x66c228]
mov dword [esp + 0x34], edx
mov edx, dword [esi*8 + 0x66c22c]
and edi, ecx
mov ecx, dword [esp + 0x20]
and ebx, edx
mov edx, ecx
sar edx, 0x10
add edx, eax
mov eax, ecx
mov dword [esp + 0x3c], edx
mov ecx, 8
cdq
call fcn.00526f40
mov cl, byte [0x66c268]
mov edx, dword [esp + 0x38]
and al, cl
mov ecx, dword [esp + 0x14]
and edx, 0xffff
mov byte [ecx + ebp + 0x1c56], al
mov eax, dword [ebp + edx*4 + 0xc54]
mov edx, ebx
mov dword [esp + 0x20], eax
movsx eax, al
sub esi, eax
mov eax, edi
mov ecx, esi
call fcn.00526f40
mov ecx, dword [esi*8 + 0x66c228]
mov dword [esp + 0x34], edx
mov edx, dword [esi*8 + 0x66c22c]
and edi, ecx
mov ecx, dword [esp + 0x20]
and ebx, edx
mov edx, ecx
mov dword [esp + 0x6c], ebx
sar edx, 0x10
add edx, eax
mov eax, ecx
mov dword [esp + 0x38], edx
mov ecx, 8
cdq
call fcn.00526f40
mov cl, al
mov al, byte [0x66c268]
and cl, al
mov eax, dword [esp + 0x14]
mov byte [eax + ebp + 0x1c57], cl
mov ecx, dword [esp + 0xbc]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x51e7c1
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xd8]
lea edx, [ebp + 0x1c54]
mov dword [ebp + 0x28], edx
mov eax, dword [ebp]
test ebx, ebx
lea esi, [eax + ecx]
je 0x51ea69
add eax, 8
cmp esi, eax
jb 0x51eca2
mov edx, dword [esi - 4]
mov edi, dword [esi - 8]
sub esi, 8
mov dword [esp + 0x5c], edx
add ebx, 0x40
jmp 0x51ea9f
add ecx, 7
cmp eax, ecx
jb 0x51eca2
mov eax, dword [esp + 0x10]
mov esi, 0x38
sub eax, 7
mov dword [esp + 0x10], eax
mov edi, dword [eax]
mov cx, word [eax + 4]
mov word [esp + 0x6c], cx
mov dl, byte [eax + 6]
mov byte [esp + 0x6e], dl
mov ebx, dword [esp + 0x6c]
and ebx, 0xffffff
mov dword [esp + 0x6c], ebx
jmp 0x51e76b
add eax, 7
cmp esi, eax
jb 0x51eca2
sub esi, 7
mov ebx, 0x38
mov eax, esi
mov edi, dword [eax]
mov cx, word [eax + 4]
mov word [esp + 0x5c], cx
mov dl, byte [eax + 6]
mov byte [esp + 0x5e], dl
mov eax, dword [esp + 0x5c]
and eax, 0xffffff
mov dword [esp + 0x5c], eax
jmp 0x51eab1
cmp ebx, 0x38
jl 0x51eca2
cmp ebx, 0x40
jge 0x51eca2
mov edx, dword [esp + 0x5c]
mov ecx, ebx
mov eax, edi
call fcn.00526f40
or eax, edx
jne 0x51eca2
mov ax, word [esp + 0xdc]
mov cx, word [esp + 0xde]
mov dx, word [esp + 0xe0]
mov word [ebp + 0x4c], ax
mov word [ebp + 0x4e], cx
mov word [ebp + 0x50], dx
mov eax, dword [ebp]
mov ecx, dword [esp + 0x5c]
sub esi, eax
xor eax, eax
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x38]
mov edx, dword [esp + 0x64]
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x34], 0xffffffff
mov dword [eax], edi
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x54]
mov dword [ebp + 0x1c], eax
jmp 0x51e111
cmp eax, 0x32787662
je 0x51ec52
cmp eax, 0x6e787662
jne 0x51eca2
mov edx, dword [ebp + 0xb8dc]
cmp edx, ebx
jbe 0x51eb51
mov ecx, dword [ebp + 8]
mov eax, dword [ebp]
cmp ecx, eax
jbe 0x51eccf
mov ecx, 0xe
xor eax, eax
lea edi, [esp + 0x78]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp]
mov dword [esp + 0x7c], eax
sub eax, ecx
cmp eax, edx
mov dword [esp + 0x78], ecx
jbe 0x51eb78
add edx, ecx
mov dword [esp + 0x7c], edx
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x84], edx
mov edx, dword [ebp + 0xb8d8]
mov dword [esp + 0x88], eax
sub eax, ecx
mov dword [esp + 0x80], ecx
cmp eax, edx
jbe 0x51ebab
add edx, ecx
mov dword [esp + 0x88], edx
mov eax, dword [ebp + 0xb8e0]
lea ecx, [esp + 0x78]
push ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
call fcn.0051f4e0
mov edx, dword [esp + 0x7c]
mov ecx, dword [ebp]
mov esi, dword [esp + 0x84]
mov edi, dword [ebp + 0xc]
mov eax, edx
add esp, 4
sub eax, ecx
mov ecx, esi
sub ecx, edi
mov edi, dword [ebp + 0xb8dc]
cmp eax, edi
ja 0x51eca2
cmp ecx, dword [ebp + 0xb8d8]
ja 0x51eca2
mov dword [ebp], edx
mov edx, dword [esp + 0xa0]
mov dword [ebp + 0xc], esi
mov edi, dword [ebp + 0xb8dc]
mov esi, dword [ebp + 0xb8d8]
sub edi, eax
mov eax, edi
sub esi, ecx
cmp eax, ebx
mov dword [ebp + 0xb8dc], edi
mov dword [ebp + 0xb8d8], esi
mov ecx, esi
mov dword [ebp + 0xb8e0], edx
jne 0x51ecb2
cmp ecx, ebx
jne 0x51eca2
cmp dword [esp + 0xa8], ebx
je 0x51eca2
mov dword [ebp + 0x1c], ebx
jmp 0x51e113
mov eax, dword [ebp + 8]
mov ecx, dword [ebp]
cmp eax, ecx
jbe 0x51eccf
sub eax, ecx
mov ecx, dword [ebp + 0x24]
cmp ecx, eax
ja 0x51eccf
push ebp
call fcn.0051ed50
add esp, 4
cmp eax, ebx
jne 0x51ecd2
mov ecx, dword [ebp]
mov dword [ebp + 0x1c], ebx
mov eax, dword [ebp + 0x24]
add ecx, eax
mov dword [ebp], ecx
jmp 0x51e113
mov eax, dword [ebp]
pop edi
add eax, 4
mov dword [ebp + 0x18], 1
mov dword [ebp], eax
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x3a4
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x3a4
ret
cmp ecx, ebx
je 0x51eca2
cmp dword [esp + 0xa8], ebx
jne 0x51eca2
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x3a4
ret
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3a4
ret