Function at 0x47e9e0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4ac
mov dword [ebp - 0x4ac], edx
mov dword [ebp - 0x4a8], eax
mov edi, ecx
mov edx, dword [eax + 0xa0]
mov ecx, dword [ebp - 0x4ac]
lea esi, [ebp - 0x10]
mov eax, dword [ecx + 0x34]
mov ecx, dword [edx + 0x10c]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x4a0], eax
mov eax, dword [ebp - 0x4ac]
mov al, byte [eax + 0x44]
shr al, 7
mov byte [ebp - 0x4a1], al
lea eax, [ebp - 0x80]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
add eax, 0x10
cmp eax, esi
jne 0x47ea30
cmp byte [ebp - 0x4a1], 0
je 0x47ea80
mov edx, dword [ebp - 0x4a0]
sub esp, 0xc
lea ebx, [edx + edi*4]
push ebx
call fcn.0040b280
and eax, edx
add esp, 0x10
inc eax
mov eax, str._1__no_type_
sete dl
test dl, dl
je 0x47eaa4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebp - 0x4a0]
sub esp, 0xc
lea ebx, [ecx + edi*4]
push ebx
call fcn.0040b2b0
and eax, edx
add esp, 0x10
inc eax
mov eax, str._1__no_type_
sete dl
test dl, dl
jne 0x47ea78
mov al, byte [ebp - 0x4a1]
inc edi
and eax, 0xff
mov dword [ebp - 0x490], edi
mov dword [ebp - 0x49c], eax
push edx
push esi
push ebx
push eax
call fcn.0045ae90
mov al, byte [ebp - 0xe]
mov dl, byte [ebp - 0x10]
and eax, 0xf
add esp, 0x10
and eax, 0xff
mov dword [ebp - 0x24], 0
shr dl, 2
mov dword [ebp - 0x84], eax
mov al, byte [ebp - 0xe]
shr al, 4
and eax, 0xff
mov dword [ebp - 0x74], eax
mov al, byte [ebp - 0xd]
and eax, 0xf
and eax, 0xff
mov dword [ebp - 0x64], eax
mov al, byte [ebp - 0xd]
shr al, 4
and eax, 0xff
mov dword [ebp - 0x54], eax
mov al, byte [ebp - 0xf]
and eax, 0xf
and eax, 0xff
mov dword [ebp - 0x44], eax
mov al, byte [ebp - 0xf]
shr al, 4
and eax, 0xff
cmp dl, 0x1a
mov dword [ebp - 0x34], eax
jbe 0x47ed47
push eax
xor eax, eax
mov al, dl
push eax
lea eax, [ebp - 0x484]
push str.Unknown_basic_type__d
mov dword [ebp - 0x4b8], eax
push eax
call fcn.0047e840
add esp, 0x10
lea ebx, [ebp - 0x484]
mov eax, dword [ebx]
add ebx, 4
lea edx, [eax - 0x1010101]
xor eax, 0xffffffff
and edx, eax
and edx, 0x80808080
je 0x47eb5b
test edx, 0x8080
je 0x47eef0
add dl, dl
mov edi, dword [ebp - 0x4b8]
sbb ebx, 3
sub ebx, edi
test byte [ebp - 0x10], 1
jne 0x47ec82
mov eax, dword [ebp - 0x84]
mov esi, 0x4d9818
test eax, eax
je 0x47ecdd
mov edx, dword [ebp - 0x4a0]
mov ecx, dword [ebp - 0x4a0]
add edx, 8
add ecx, 0xc
lea esi, [ebp - 0x74]
lea edi, [ebp - 4]
mov dword [ebp - 0x4b0], edx
mov dword [ebp - 0x4b4], ecx
jmp 0x47ebda
add esi, 0x10
cmp esi, edi
je 0x47ec4b
mov eax, dword [esi - 0x10]
cmp eax, 3
jne 0x47ebd0
cmp byte [ebp - 0x4a1], 0
je 0x47ecfc
mov ebx, dword [ebp - 0x490]
sub esp, 0xc
shl ebx, 2
mov eax, dword [ebp - 0x4b0]
add eax, ebx
push eax
call fcn.0040b280
mov edx, dword [ebp - 0x4b4]
mov dword [esi - 0xc], eax
lea eax, [ebx + edx]
mov dword [esp], eax
call fcn.0040b280
mov ecx, dword [ebp - 0x4a0]
lea ebx, [ebx + ecx + 0x10]
mov dword [esi - 8], eax
mov dword [esp], ebx
call fcn.0040b280
add esp, 0x10
mov ecx, dword [ebp - 0x490]
mov dword [esi - 4], eax
add ecx, 5
add esi, 0x10
mov dword [ebp - 0x490], ecx
cmp esi, edi
jne 0x47ebd7
mov dword [ebp - 0x498], 0
mov esi, 0x4d9818
lea esi, [esi]
mov eax, dword [ebp - 0x498]
lea edx, [ebp - 0xc]
shl eax, 4
add eax, edx
cmp dword [eax - 0x78], 5
ja case.0x47ec7b.0
mov eax, dword [eax - 0x78]
jmp dword [eax*4 + 0x4cf798]
cmp byte [ebp - 0x4a1], 0
jne 0x47eefb
mov ecx, dword [ebp - 0x490]
mov edx, dword [ebp - 0x4a0]
sub esp, 0xc
lea eax, [edx + ecx*4]
inc ecx
mov dword [ebp - 0x490], ecx
push eax
call fcn.0040b2b0
add esp, 0x10
lea ecx, [ebp - 0x484]
push esi
push eax
push str._:__d
lea eax, [ebx + ecx]
mov esi, 0x4d9818
push eax
call fcn.0047e840
mov eax, dword [ebp - 0x84]
add esp, 0x10
test eax, eax
jne 0x47eba9
lea edx, [ebp - 0x484]
push eax
push eax
push edx
push esi
call sub.msvcrt.dll_strcpy
mov eax, 0x4d9818
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [ebp - 0x490]
sub esp, 0xc
shl ebx, 2
mov eax, dword [ebp - 0x4b0]
add eax, ebx
push eax
call fcn.0040b2b0
mov edx, dword [ebp - 0x4b4]
mov dword [esi - 0xc], eax
lea eax, [ebx + edx]
mov dword [esp], eax
call fcn.0040b2b0
mov ecx, dword [ebp - 0x4a0]
lea ebx, [ebx + ecx + 0x10]
mov dword [esi - 8], eax
mov dword [esp], ebx
call fcn.0040b2b0
add esp, 0x10
jmp 0x47ec32
xor eax, eax
mov al, dl
jmp dword [eax*4 + 0x4cf7b0]
mov eax, dword [ebp - 0x494]
mov dword [ebp - 0x498], eax
nop
mov eax, dword [ebp - 0x498]
inc eax
mov dword [ebp - 0x498], eax
cmp dword [ebp - 0x498], 5
jle 0x47ec60
jmp 0x47ecdd
mov dword [esi], 0x616c6f76
mov dword [esi + 4], 0x656c6974
mov word [esi + 8], 0x20
add esi, 9
jmp case.0x47ec7b.0
mov dword [esi], 0x20726166
mov byte [esi + 4], 0
add esi, 4
jmp case.0x47ec7b.0
cmp dword [ebp - 0x498], 5
je 0x47f47c
mov ecx, dword [ebp - 0x498]
inc ecx
mov eax, ecx
mov dword [ebp - 0x494], ecx
shl eax, 4
cmp dword [ebp + eax - 0x84], 3
jne 0x47f46b
mov eax, dword [ebp - 0x498]
lea edx, [ebp - 0x84]
shl eax, 4
add edx, eax
jmp 0x47edec
mov dword [ebp - 0x494], ecx
cmp dword [ebp - 0x494], 5
je 0x47ef22
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x494]
inc ecx
add edx, 0x10
cmp eax, 3
je 0x47ede6
mov edi, dword [ebp - 0x494]
cmp edi, dword [ebp - 0x498]
jl 0x47ed52
mov eax, edi
shl eax, 4
lea ebx, [eax + ebp - 0x80]
jmp 0x47ee75
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
je 0x47eed8
mov edx, dword [ebx + 8]
inc eax
push edx
push eax
push str._ld__ld_bits
push esi
call fcn.0047e840
add esp, 0x10
sub esp, 0xc
dec edi
sub ebx, 0x10
push esi
call sub.msvcrt.dll_strlen
add eax, esi
add esp, 0x10
mov dword [eax], 0x666f205d
mov word [eax + 4], 0x20
lea esi, [eax + 5]
cmp edi, dword [ebp - 0x498]
jl 0x47ed52
mov dword [esi], 0x61727261
mov dword [esi + 4], 0x5b2079
mov eax, dword [ebx]
add esi, 7
test eax, eax
je 0x47ee28
sub esp, 0xc
mov edx, dword [ebx + 8]
push edx
mov ecx, dword [ebx + 4]
push ecx
push eax
push str._ld:_ld__ld_bits
push esi
call fcn.0047e840
add esp, 0x20
jmp 0x47ee48
mov dword [esi], 0x636e7566
mov dword [esi + 4], 0x6572202e
mov dword [esi + 8], 0x202e74
add esi, 0xc
jmp case.0x47ec7b.0
mov dword [esi], 0x20727470
mov dword [esi + 4], 0x206f74
add esi, 7
jmp case.0x47ec7b.0
push eax
mov eax, dword [ebx + 8]
push eax
push str.__ld_bits
push esi
call fcn.0047e840
add esp, 0x10
jmp 0x47ee48
shr edx, 0x10
add ebx, 2
jmp 0x47eb7f
mov ecx, dword [ebp - 0x490]
mov edx, dword [ebp - 0x4a0]
sub esp, 0xc
lea eax, [edx + ecx*4]
inc ecx
mov dword [ebp - 0x490], ecx
push eax
call fcn.0040b280
add esp, 0x10
jmp 0x47ecb1
mov edi, 5
jmp 0x47ee11
lea ecx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x72646461
mov dword [ebp - 0x480], 0x737365
mov dword [ebp - 0x4b8], ecx
jmp 0x47eb55
mov ebx, dword [ebp - 0x490]
push esi
shl ebx, 2
lea esi, [ebp - 0x14]
push esi
mov edx, dword [ebp - 0x4a0]
lea eax, [ebx + edx]
push eax
mov ecx, dword [ebp - 0x49c]
push ecx
call fcn.0045b120
add esp, 0x10
cmp byte [ebp - 0x4a1], 0
je 0x47f4ab
mov ecx, dword [ebp - 0x4a0]
sub esp, 0xc
lea eax, [ebx + ecx + 4]
push eax
call fcn.0040b280
add esp, 0x10
lea ecx, [ebp - 0x484]
push edx
mov dword [ebp - 0x4b8], ecx
push str.enum
push eax
push esi
mov edx, dword [ebp - 0x4ac]
mov eax, dword [ebp - 0x4a8]
call fcn.0047e860
mov edi, dword [ebp - 0x490]
inc edi
add esp, 0x10
mov dword [ebp - 0x490], edi
jmp 0x47eb55
lea eax, [ebp - 0x484]
mov dword [ebp - 0x484], 0x65707974
mov dword [ebp - 0x480], 0x666564
mov dword [ebp - 0x4b8], eax
jmp 0x47eb55
lea edx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x72627573
mov dword [ebp - 0x480], 0x65676e61
mov byte [ebp - 0x47c], 0
mov dword [ebp - 0x4b8], edx
jmp 0x47eb55
lea ecx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x746573
mov dword [ebp - 0x4b8], ecx
jmp 0x47eb55
lea eax, [ebp - 0x484]
mov dword [ebp - 0x484], 0x706d6f63
mov dword [ebp - 0x480], 0x78656c
mov dword [ebp - 0x4b8], eax
jmp 0x47eb55
lea edx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x62756f64
mov dword [ebp - 0x480], 0x6320656c
mov dword [ebp - 0x47c], 0x6c706d6f
mov word [ebp - 0x478], 0x7865
mov byte [ebp - 0x476], 0
mov dword [ebp - 0x4b8], edx
jmp 0x47eb55
lea ecx, [ebp - 0x484]
mov esi, str.forward_unamed_typedef
mov dword [ebp - 0x4b8], ecx
mov ecx, 5
cld
mov edi, dword [ebp - 0x4b8]
rep movsd dword es:[edi], dword [esi]
mov ax, word [0x4cf74b]
mov word [edi], ax
mov al, byte [0x4cf74d]
mov byte [edi + 2], al
jmp 0x47eb55
lea eax, [ebp - 0x484]
mov dword [ebp - 0x484], 0x65786966
mov dword [ebp - 0x480], 0x65642064
mov dword [ebp - 0x47c], 0x616d6963
mov word [ebp - 0x478], 0x6c
mov dword [ebp - 0x4b8], eax
jmp 0x47eb55
lea edx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x616f6c66
mov dword [ebp - 0x480], 0x65642074
mov dword [ebp - 0x47c], 0x616d6963
mov word [ebp - 0x478], 0x6c
mov dword [ebp - 0x4b8], edx
jmp 0x47eb55
lea ecx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x69727473
mov word [ebp - 0x480], 0x676e
mov byte [ebp - 0x47e], 0
mov dword [ebp - 0x4b8], ecx
jmp 0x47eb55
lea eax, [ebp - 0x484]
mov dword [ebp - 0x484], 0x746962
mov dword [ebp - 0x4b8], eax
jmp 0x47eb55
lea edx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x74636970
mov dword [ebp - 0x480], 0x657275
mov dword [ebp - 0x4b8], edx
jmp 0x47eb55
lea ecx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x64696f76
mov byte [ebp - 0x480], 0
mov dword [ebp - 0x4b8], ecx
jmp 0x47eb55
lea edx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x746e69
mov dword [ebp - 0x4b8], edx
jmp 0x47eb55
lea ecx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x69736e75
mov dword [ebp - 0x480], 0x64656e67
mov dword [ebp - 0x47c], 0x746e6920
mov byte [ebp - 0x478], 0
mov dword [ebp - 0x4b8], ecx
jmp 0x47eb55
lea eax, [ebp - 0x484]
mov dword [ebp - 0x484], 0x676e6f6c
mov byte [ebp - 0x480], 0
mov dword [ebp - 0x4b8], eax
jmp 0x47eb55
lea edx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x69736e75
mov dword [ebp - 0x480], 0x64656e67
mov dword [ebp - 0x47c], 0x6e6f6c20
mov word [ebp - 0x478], 0x67
mov dword [ebp - 0x4b8], edx
jmp 0x47eb55
lea ecx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x616f6c66
mov word [ebp - 0x480], 0x74
mov dword [ebp - 0x4b8], ecx
jmp 0x47eb55
lea eax, [ebp - 0x484]
mov dword [ebp - 0x484], 0x62756f64
mov word [ebp - 0x480], 0x656c
mov byte [ebp - 0x47e], 0
mov dword [ebp - 0x4b8], eax
jmp 0x47eb55
lea esi, [ebp - 0x14]
mov ebx, dword [ebp - 0x490]
shl ebx, 2
push eax
push esi
mov edx, dword [ebp - 0x4a0]
lea eax, [ebx + edx]
push eax
mov eax, dword [ebp - 0x49c]
push eax
call fcn.0045b120
add esp, 0x10
cmp byte [ebp - 0x4a1], 0
je 0x47f4c6
mov ecx, dword [ebp - 0x4a0]
sub esp, 0xc
lea eax, [ebx + ecx + 4]
push eax
call fcn.0040b280
add esp, 0x10
lea ecx, [ebp - 0x484]
push edi
mov dword [ebp - 0x4b8], ecx
push str.struct
jmp 0x47efad
mov ebx, dword [ebp - 0x490]
push esi
shl ebx, 2
lea esi, [ebp - 0x14]
push esi
mov edx, dword [ebp - 0x4a0]
lea eax, [ebx + edx]
push eax
mov ecx, dword [ebp - 0x49c]
push ecx
call fcn.0045b120
add esp, 0x10
cmp byte [ebp - 0x4a1], 0
je 0x47f490
mov ecx, dword [ebp - 0x4a0]
sub esp, 0xc
lea eax, [ebx + ecx + 4]
push eax
call fcn.0040b280
add esp, 0x10
lea ecx, [ebp - 0x484]
push edx
mov dword [ebp - 0x4b8], ecx
push str.union
jmp 0x47efad
lea edx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x69736e75
mov dword [ebp - 0x480], 0x64656e67
mov dword [ebp - 0x47c], 0x61686320
mov word [ebp - 0x478], 0x72
mov dword [ebp - 0x4b8], edx
jmp 0x47eb55
lea eax, [ebp - 0x484]
mov dword [ebp - 0x484], 0x72616863
mov byte [ebp - 0x480], 0
mov dword [ebp - 0x4b8], eax
jmp 0x47eb55
lea eax, [ebp - 0x484]
mov dword [ebp - 0x484], 0x69736e75
mov dword [ebp - 0x480], 0x64656e67
mov dword [ebp - 0x47c], 0x6f687320
mov word [ebp - 0x478], 0x7472
mov byte [ebp - 0x476], 0
mov dword [ebp - 0x4b8], eax
jmp 0x47eb55
lea edx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x6c696e
mov dword [ebp - 0x4b8], edx
jmp 0x47eb55
lea ecx, [ebp - 0x484]
mov dword [ebp - 0x484], 0x726f6873
mov word [ebp - 0x480], 0x74
mov dword [ebp - 0x4b8], ecx
jmp 0x47eb55
mov edi, dword [ebp - 0x498]
mov dword [ebp - 0x494], edi
jmp 0x47ee1d
mov edi, 5
mov dword [ebp - 0x494], 5
jmp 0x47ee1d
mov edx, dword [ebp - 0x4a0]
sub esp, 0xc
lea eax, [ebx + edx + 4]
push eax
call fcn.0040b2b0
add esp, 0x10
jmp 0x47f37c
mov edx, dword [ebp - 0x4a0]
sub esp, 0xc
lea eax, [ebx + edx + 4]
push eax
call fcn.0040b2b0
add esp, 0x10
jmp 0x47ef9b
mov edx, dword [ebp - 0x4a0]
sub esp, 0xc
lea eax, [ebx + edx + 4]
push eax
call fcn.0040b2b0
add esp, 0x10
jmp 0x47f31b