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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x204c
call fcn.0059f510
mov eax, dword [0x5f300c]
xor eax, esp
mov dword [esp + 0x2048], eax
mov eax, dword [ebp + 0x18]
lea ecx, [esp + 0x6c]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push eax
mov dword [esp + 0x5c], edi
call fcn.00472850
mov ecx, dword [esp + 0x78]
mov edi, dword [ebp + 0xc]
push edi
push ecx
mov eax, dword [ecx]
call dword [eax + 0x14]
mov dword [esp + 0x70], eax
test eax, eax
je 0x4b2e1f
mov esi, dword [esp + 0x78]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x24]
lea ecx, [eax - 1]
push ecx
push esi
call edx
mov ebx, eax
jmp 0x4b2e21
xor ebx, ebx
mov eax, ebx
mov ecx, ebx
sar eax, 0xa
mov dword [esp + 0x6c], eax
mov eax, ebx
sar eax, 4
and eax, 0xffffff01
sar ecx, 5
mov dword [esp + 0x68], eax
and ecx, 0x1f
mov eax, ebx
mov dword [esp + 0x64], ecx
sar eax, 3
and ebx, 7
and eax, 1
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x14]
cmp eax, 0x13
jne 0x4b2e63
xor eax, eax
jmp 0x4b2e6a
cmp eax, 0x16
jne 0x4b2e6a
mov eax, ecx
push 0xffffffffffffffff
lea ecx, [esp + 0x7c]
push ecx
push eax
push dword [ebp + 0x10]
lea ecx, [esp + 0x20]
push edi
call fcn.00476050
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x74], 0xa
mov byte [esp + 0xd], 0
mov byte [esp + 0xf], 0
mov byte [esp + 0xe], 0
cmp eax, dword [esp + 0x18]
jae 0x4b3518
mov esi, dword [esp + 0x40]
cmp esi, 0x12
je 0x4b2ebf
cmp esi, 0x15
je 0x4b2ebf
cmp esi, 0x16
je 0x4b2ebf
mov eax, esi
mov dword [esp + 0x64], eax
jmp 0x4b2ec3
mov eax, dword [esp + 0x64]
cmp byte [esp + 0x3d], 0
mov edi, dword [esp + 0x6c]
je 0x4b2efe
mov edx, dword [esp + 0x78]
mov ecx, edi
shl ecx, 5
or ecx, eax
mov eax, dword [esp + 0x68]
add ecx, ecx
movzx eax, al
mov esi, dword [edx]
or ecx, eax
add ecx, ecx
or ecx, dword [esp + 0x5c]
shl ecx, 3
or ecx, ebx
push ecx
push dword [esp + 0x74]
push edx
call dword [esi + 0x28]
inc dword [esp + 0x70]
cmp dword [esp + 0x48], 0x5c
jne 0x4b2f82
mov esi, dword [esp + 0x50]
cmp esi, 0xa
je 0x4b2f13
cmp esi, 0xd
jne 0x4b2f82
mov esi, dword [esp + 0x40]
cmp esi, 4
je 0x4b2f21
cmp esi, 0x12
jne 0x4b2f82
mov eax, dword [esp + 0x68]
mov ecx, edi
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
shl ecx, 5
or ecx, dword [esp + 0x64]
mov esi, dword [edx]
add ecx, ecx
movzx eax, al
or ecx, eax
add ecx, ecx
or ecx, dword [esp + 0x5c]
shl ecx, 3
or ecx, ebx
push ecx
push edi
push edx
call dword [esi + 0x28]
inc edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x70], edi
call fcn.004761d0
cmp dword [esp + 0x48], 0xd
jne 0x4b3501
cmp dword [esp + 0x50], 0xa
jne 0x4b3501
lea ecx, [esp + 0x10]
call fcn.004761d0
jmp 0x4b3501
cmp byte [esp + 0x3c], 0
je 0x4b3004
mov esi, dword [esp + 0x40]
cmp esi, 4
je 0x4b2f97
cmp esi, 5
jne 0x4b2fb9
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x40]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push esi
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov dword [esp + 0x40], esi
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
cmp byte [edx + 0x14], 0
je 0x4b3250
test esi, esi
jne 0x4b300c
mov esi, dword [esp + 0x40]
cmp esi, 0x12
je 0x4b3008
cmp esi, 0x15
je 0x4b3008
cmp esi, 0x16
je 0x4b3008
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
push esi
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov dword [esp + 0x40], 0x15
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
cmp byte [edx + 0x14], 0
je 0x4b3250
test esi, esi
jne 0x4b3187
cmp byte [esp + 0x3c], 0
je 0x4b3187
cmp dword [esp + 0x48], 0x3e
jne 0x4b3088
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
push dword [esp + 0x40]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], 0x16
call fcn.004761d0
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
push dword [esp + 0x40]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x40], eax
jmp 0x4b350a
mov ecx, dword [esp + 0x48]
cmp ecx, 0x20
je 0x4b30ac
cmp ecx, 9
je 0x4b30ac
push 0x5b763c
lea ecx, [esp + 0x14]
call fcn.00480180
test al, al
je 0x4b3183
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x40]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push esi
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov dword [esp + 0x40], esi
mov edi, edi
mov eax, dword [esp + 0x48]
cmp eax, 0x20
je 0x4b30de
cmp eax, 9
jne 0x4b30f3
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x18]
jae 0x4b30f3
lea ecx, [esp + 0x10]
call fcn.004761d0
jmp 0x4b30d0
push str._begincode
lea ecx, [esp + 0x14]
call fcn.00480180
test al, al
je 0x4b350a
mov esi, 0xc
mov edi, edi
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3110
cmp byte [esp + 0x3d], 0
mov bl, 1
jne 0x4b316a
jmp 0x4b3130
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x18]
jae 0x4b315d
mov eax, dword [esp + 0x48]
cmp eax, 0x20
je 0x4b314d
cmp eax, 9
setne al
dec al
and bl, al
lea ecx, [esp + 0x10]
call fcn.004761d0
cmp byte [esp + 0x3d], 0
je 0x4b3130
test bl, bl
jne 0x4b316a
mov ebx, dword [esp + 0x60]
jmp 0x4b350a
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x40], 0x16
mov dword [esp + 0x5c], 1
jmp 0x4b350a
mov edx, dword [esp + 0x58]
cmp byte [edx + 0x14], 0
je 0x4b3250
cmp esi, 1
jne 0x4b3250
cmp byte [esp + 0x3c], 0
je 0x4b32a1
push str.endcode
lea ecx, [esp + 0x14]
call fcn.00480180
test al, al
je 0x4b324c
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
push dword [esp + 0x40]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov dword [esp + 0x40], 0x16
mov esi, 0xa
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b31e5
cmp byte [esp + 0x3d], 0
jne 0x4b321a
lea ebx, [ebx]
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [esp + 0x18]
jae 0x4b321e
lea ecx, [esp + 0x10]
call fcn.004761d0
cmp byte [esp + 0x3d], 0
je 0x4b3200
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
push dword [esp + 0x40]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov dword [esp + 0x40], 0x15
mov dword [esp + 0x5c], 0
jmp 0x4b350a
mov edx, dword [esp + 0x58]
cmp byte [esp + 0x3c], 0
je 0x4b32a1
cmp dword [esp + 0x48], 0x23
jne 0x4b32a1
cmp byte [edx + 0xc54], 0
je 0x4b32a1
cmp byte [edx + 0xc55], 0
je 0x4b3277
cmp dword [esp + 0x40], 0
jne 0x4b32a1
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
push dword [esp + 0x40]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov dword [esp + 0x40], 0x12
jmp 0x4b3501
cmp dword [esp + 0x40], 0x15
je 0x4b3501
cmp dword [esp + 0x40], 0x16
jne 0x4b32e6
lea ecx, [esp + 0x10]
call fcn.004761d0
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
push dword [esp + 0x40]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x40], eax
jmp 0x4b350a
cmp dword [esp + 0x40], 0x12
jne 0x4b339e
cmp byte [esp + 0x3d], 0
mov al, byte [edx + 0xc55]
je 0x4b333b
mov ecx, dword [esp + 0x2c]
xor ebx, ebx
test al, al
push 0x12
setne bl
dec ebx
and ebx, dword [esp + 0x68]
cmp dword [esp + 0x20], ecx
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], ebx
call fcn.004761d0
mov ebx, dword [esp + 0x60]
jmp 0x4b350a
test al, al
je 0x4b3501
mov ecx, dword [esp + 0x48]
cmp ecx, 0x7f
ja 0x4b336b
cmp ecx, 0x61
jl 0x4b335a
cmp ecx, 0x7a
jle 0x4b3501
mov eax, dword [esp + 0x48]
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x4b3397
jmp 0x4b3501
mov ecx, dword [esp + 0x48]
call fcn.00472b20
cmp eax, 1
je 0x4b3501
test eax, eax
je 0x4b3501
cmp eax, 2
je 0x4b3501
cmp eax, 4
je 0x4b3501
push 0x12
jmp 0x4b423f
cmp dword [esp + 0x40], 0xb
jne 0x4b3444
cmp dword [esp + 0x48], 0x3a
mov esi, 0xb
jne 0x4b33df
cmp byte [esp + 0xe], 0
jne 0x4b33df
cmp dword [esp + 0x50], 0x3a
jne 0x4b33da
push ecx
push 2
lea ecx, [esp + 0x18]
call fcn.00485b20
mov ecx, eax
call fcn.004b2010
test al, al
je 0x4b33df
mov esi, 8
mov ecx, dword [esp + 0x48]
mov byte [esp + 0xe], 0
call fcn.004b2010
test al, al
je 0x4b3407
lea ecx, [esp + 0x10]
call fcn.004761d0
mov ecx, dword [esp + 0x48]
call fcn.004b2010
test al, al
jne 0x4b33f1
push 0x64
lea eax, [esp + 0x1fec]
push eax
lea ecx, [esp + 0x18]
call fcn.00475080
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x1fe8]
push eax
lea ecx, [ecx + 0x840]
call fcn.00475500
test al, al
je 0x4b343a
mov esi, 0x14
mov dword [esp + 0x40], esi
push esi
jmp 0x4b423f
cmp dword [esp + 0x40], 4
jne 0x4b34a1
cmp byte [esp + 0x3d], 0
je 0x4b345f
mov dword [esp + 0x40], 0x13
jmp 0x4b4232
cmp dword [esp + 0x48], 0x22
jne 0x4b3485
lea ecx, [esp + 0x10]
call fcn.004761d0
mov edi, dword [esp + 0x58]
cmp byte [edi + 0xc50], 0
je 0x4b36ae
jmp 0x4b369e
cmp dword [esp + 0x48], 0x5c
jne 0x4b3501
mov esi, 2
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3491
jmp 0x4b350a
cmp dword [esp + 0x40], 5
jne 0x4b34e0
cmp byte [esp + 0x3d], 0
je 0x4b34bc
mov dword [esp + 0x40], 0x13
jmp 0x4b4232
cmp dword [esp + 0x48], 0x27
je 0x4b3466
cmp dword [esp + 0x48], 0x5c
jne 0x4b3501
mov esi, 2
nop
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b34d0
jmp 0x4b350a
cmp dword [esp + 0x40], 3
jne 0x4b36be
cmp byte [esp + 0x3d], 0
je 0x4b3580
push 0
lea ecx, [esp + 0x14]
call fcn.00476250
lea ecx, [esp + 0x10]
call fcn.004761d0
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x18]
jb 0x4b2ea4
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
push dword [esp + 0x40]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov esi, dword [esp + 0x10]
mov edi, dword [esi + 0x1f5c]
test edi, edi
jle 0x4b3569
mov ecx, dword [esi]
lea eax, [esi + 0xfbc]
push eax
push edi
push ecx
mov edx, dword [ecx]
call dword [edx + 0x34]
mov eax, dword [esi + 0x1f5c]
add dword [esi + 0x1f64], eax
mov dword [esi + 0x1f5c], 0
mov ecx, dword [esp + 0x2054]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0059df64
mov esp, ebp
pop ebp
ret 0x14
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0x48]
cmp edi, 0xa
jg 0x4b3597
cmp ecx, 0x30
jl 0x4b35cd
lea eax, [edi + 0x30]
jmp 0x4b35c5
cmp ecx, 0x30
jl 0x4b35a5
cmp ecx, 0x39
jle 0x4b3501
mov ecx, dword [esp + 0x48]
cmp ecx, 0x41
jl 0x4b35b9
lea eax, [edi + 0x37]
cmp ecx, eax
jl 0x4b3501
mov ecx, dword [esp + 0x48]
cmp ecx, 0x61
jl 0x4b35cd
lea eax, [edi + 0x57]
cmp ecx, eax
jl 0x4b3501
cmp dword [esp + 0x48], 0x2e
jne 0x4b3638
cmp byte [esp + 0xd], 0
je 0x4b3638
mov esi, dword [esp + 0x50]
cmp edi, 0xa
jg 0x4b35ee
cmp esi, 0x30
jl 0x4b3638
lea eax, [edi + 0x30]
jmp 0x4b3614
cmp esi, 0x30
jl 0x4b35f8
cmp esi, 0x39
jle 0x4b3618
mov esi, dword [esp + 0x50]
cmp esi, 0x41
jl 0x4b3608
lea eax, [edi + 0x37]
cmp esi, eax
jl 0x4b3618
mov esi, dword [esp + 0x50]
cmp esi, 0x61
jl 0x4b3638
lea eax, [edi + 0x57]
cmp esi, eax
jge 0x4b3638
mov esi, 2
lea ecx, [ecx]
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3620
mov byte [esp + 0xd], 0
jmp 0x4b350a
cmp edi, 0xa
jne 0x4b3685
mov ecx, dword [esp + 0x48]
cmp ecx, 0x65
je 0x4b364b
cmp ecx, 0x45
jne 0x4b3685
mov esi, dword [esp + 0x50]
lea eax, [esi - 0x30]
cmp eax, 9
jbe 0x4b3661
cmp esi, 0x2b
je 0x4b3661
cmp esi, 0x2d
jne 0x4b3685
lea ecx, [esp + 0x10]
call fcn.004761d0
mov ecx, dword [esp + 0x48]
cmp ecx, 0x2b
je 0x4b3501
cmp ecx, 0x2d
jne 0x4b350a
jmp 0x4b3501
cmp byte [edx + 0xc50], 0
je 0x4b36ae
cmp dword [esp + 0x48], 0x23
jne 0x4b36ae
lea ecx, [esp + 0x10]
call fcn.004761d0
cmp dword [esp + 0x48], 0x23
jne 0x4b36ae
lea ecx, [esp + 0x10]
call fcn.004761d0
push 0
lea ecx, [esp + 0x14]
call fcn.00476250
jmp 0x4b350a
cmp dword [esp + 0x40], 1
jne 0x4b3bfe
mov ecx, dword [esp + 0x48]
cmp ecx, 0x7f
ja 0x4b36dd
lea eax, [ecx - 0x41]
cmp eax, 0x19
setbe al
jmp 0x4b36f5
mov ecx, dword [esp + 0x48]
call fcn.00472b20
test eax, eax
je 0x4b36f3
cmp eax, 2
je 0x4b36f3
xor al, al
jmp 0x4b36f5
mov al, 1
movzx ebx, al
lea ecx, [esp + 0x10]
neg ebx
sbb ebx, ebx
and ebx, 7
inc ebx
call fcn.004761d0
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x18]
jae 0x4b37b7
mov esi, dword [esp + 0x48]
cmp esi, 0x7f
ja 0x4b3740
cmp esi, 0x30
jl 0x4b372a
cmp esi, 0x39
jle 0x4b3768
cmp esi, 0x61
jl 0x4b3734
cmp esi, 0x7a
jle 0x4b3768
lea eax, [esi - 0x41]
cmp eax, 0x19
jbe 0x4b3768
xor al, al
jmp 0x4b376a
mov ecx, esi
call fcn.00472b20
cmp eax, 1
je 0x4b3768
test eax, eax
je 0x4b3768
cmp eax, 2
je 0x4b3768
cmp eax, 4
je 0x4b3768
cmp eax, 8
je 0x4b3768
cmp eax, 0xa
je 0x4b3768
xor al, al
jmp 0x4b376a
mov al, 1
test al, al
jne 0x4b37a0
cmp esi, 0x5f
je 0x4b37a0
cmp esi, 0x27
je 0x4b37a0
cmp esi, 0x2e
jne 0x4b37bb
cmp ebx, 8
jne 0x4b37bb
mov edi, dword [esp + 0x50]
cmp edi, 0x7f
ja 0x4b3891
lea eax, [edi - 0x41]
cmp eax, 0x19
ja 0x4b38a9
mov ebx, 8
lea ecx, [esp + 0x10]
call fcn.004761d0
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x18]
jb 0x4b3717
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x58]
cmp byte [edi + 0xc50], 0
je 0x4b37f0
cmp esi, 0x23
jne 0x4b37f0
lea ecx, [esp + 0x10]
call fcn.004761d0
cmp dword [esp + 0x48], esi
jne 0x4b37f0
lea esp, [esp]
lea ecx, [esp + 0x10]
call fcn.004761d0
cmp dword [esp + 0x48], 0x23
je 0x4b37e0
push 0x64
lea eax, [esp + 0x1fec]
push eax
lea ecx, [esp + 0x18]
call fcn.00475080
lea eax, [esp + 0x1fe8]
xor esi, esi
push eax
lea ecx, [edi + 0x20]
call fcn.00475500
mov edi, dword [esp + 0x60]
test al, al
je 0x4b394d
lea ebx, [esi + 2]
mov eax, dword [esp + 0x58]
cmp edi, 5
jne 0x4b384b
lea ecx, [esp + 0x1fe8]
push ecx
lea ecx, [eax + 0x430]
call fcn.00475500
test al, al
je 0x4b384b
mov esi, edi
mov ebx, 2
push 0
lea ecx, [esp + 0x14]
mov dword [esp + 0x44], ebx
call fcn.00476250
mov ecx, 0x5b7680
lea eax, [esp + 0x1fe8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b3ad0
test dl, dl
je 0x4b388a
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b3ad0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b3866
xor eax, eax
jmp 0x4b3ad5
mov ecx, edi
call fcn.00472b20
test eax, eax
je 0x4b379b
cmp eax, 2
je 0x4b379b
cmp edi, 0x7f
ja 0x4b38ca
cmp edi, 0x61
jl 0x4b38b8
cmp edi, 0x7a
jle 0x4b38e9
lea eax, [edi - 0x41]
cmp eax, 0x19
ja 0x4b38e4
mov ebx, 1
jmp 0x4b37a0
mov ecx, edi
call fcn.00472b20
cmp eax, 1
je 0x4b38e9
test eax, eax
je 0x4b38e9
cmp eax, 2
je 0x4b38e9
cmp eax, 4
je 0x4b38e9
cmp edi, 0x5f
jne 0x4b38f3
mov ebx, 1
jmp 0x4b37a0
mov ecx, edi
call fcn.004b2010
test al, al
je 0x4b37bb
lea ecx, [esp + 0x10]
call fcn.004761d0
mov esi, dword [esp + 0x48]
mov ecx, esi
lea ebx, [esi - 0x3a]
neg ebx
sbb ebx, ebx
and ebx, 3
add ebx, 8
ret
or al, ch
in eax, dx
out 0xff, al
inc dword [eax + eax*8 - 0x16f7bf1]
invalid
invalid
jmp 0x4b3930
lea ecx, [esp + 0x10]
call fcn.004761d0
mov esi, dword [esp + 0x48]
mov ecx, esi
call fcn.004b2010
test al, al
jne 0x4b3930
jmp 0x4b37bb
cmp ebx, 8
jne 0x4b397a
cmp edi, 1
je 0x4b396d
cmp edi, 3
je 0x4b396d
cmp edi, 4
jne 0x4b3824
lea ebx, [edi + 3]
jmp 0x4b384b
mov ebx, 7
lea esi, [ebx - 5]
jmp 0x4b3824
cmp edi, 1
jne 0x4b39c1
mov ecx, str.qualified
lea eax, [esp + 0x1fe8]
jmp 0x4b3990
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b39b0
test dl, dl
je 0x4b39ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b39b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b3990
xor eax, eax
jmp 0x4b39b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4b39c1
lea esi, [eax + 1]
jmp 0x4b3846
mov eax, dword [esp + 0x58]
cmp byte [eax + 0xc53], 0
je 0x4b3a15
cmp edi, 1
jne 0x4b3a15
mov ecx, str.safe
lea eax, [esp + 0x1fe8]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b3a00
test dl, dl
je 0x4b39fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b3a00
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b39e0
xor eax, eax
jmp 0x4b3a05
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4b384b
lea esi, [eax + 1]
jmp 0x4b3846
cmp edi, 2
jne 0x4b3a95
mov ecx, 0x5b7664
lea eax, [esp + 0x1fe8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b3a46
test dl, dl
je 0x4b3a42
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b3a46
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b3a26
xor eax, eax
jmp 0x4b3a4b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4b3a57
lea esi, [eax + 3]
jmp 0x4b3846
mov ecx, str.hiding
lea eax, [esp + 0x1fe8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b3a83
test dl, dl
je 0x4b3a7f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b3a83
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b3a63
xor eax, eax
jmp 0x4b3a88
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4b384b
jmp 0x4b3846
cmp edi, 6
jne 0x4b3828
mov ecx, str.family
lea eax, [esp + 0x1fe8]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b3a83
test dl, dl
je 0x4b3a7f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b3a83
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b3ab0
xor eax, eax
jmp 0x4b3a88
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4b3aee
cmp edi, 5
je 0x4b3aee
mov esi, 1
mov ebx, esi
mov dword [esp + 0x60], ebx
jmp 0x4b350a
mov ecx, 0x5b7688
lea eax, [esp + 0x1fe8]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b3b20
test dl, dl
je 0x4b3b1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b3b20
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b3b00
xor eax, eax
jmp 0x4b3b25
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4b3b39
mov esi, 4
mov ebx, esi
mov dword [esp + 0x60], ebx
jmp 0x4b350a
mov ecx, str.foreign
lea eax, [esp + 0x1fe8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b3b65
test dl, dl
je 0x4b3b61
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b3b65
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b3b45
xor eax, eax
jmp 0x4b3b6a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4b3b7e
mov esi, 5
mov ebx, esi
mov dword [esp + 0x60], ebx
jmp 0x4b350a
mov ecx, 0x5b76b4
lea eax, [esp + 0x1fe8]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b3bb0
test dl, dl
je 0x4b3bac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b3bb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b3b90
xor eax, eax
jmp 0x4b3bb5
sbb eax, eax
or eax, 1
test eax, eax
je 0x4b3bee
mov ecx, str.data
lea eax, [esp + 0x1fe8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b3be5
test dl, dl
je 0x4b3be1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b3be5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b3bc5
xor eax, eax
jmp 0x4b3bea
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4b3bf3
mov esi, 6
mov ebx, esi
mov dword [esp + 0x60], ebx
jmp 0x4b350a
cmp dword [esp + 0x40], 0xd
jne 0x4b3c67
cmp byte [esp + 0x3d], 0
je 0x4b3c20
mov eax, dword [esp + 0x68]
movzx eax, al
neg eax
sbb eax, eax
and eax, 0x11
push eax
jmp 0x4b34f8
cmp byte [esp + 0xf], 0
je 0x4b3501
mov ecx, dword [esp + 0x48]
cmp ecx, 0x2d
je 0x4b3501
cmp byte [esp + 0x68], 0
jne 0x4b3501
mov byte [esp + 0xf], 0
call fcn.004b2010
test al, al
je 0x4b350a
mov byte [esp + 0xe], 1
mov dword [esp + 0x40], 0xb
jmp 0x4b350a
mov eax, dword [esp + 0x40]
add eax, 0xfffffff2
cmp eax, 2
ja 0x4b3d36
cmp dword [esp + 0x48], 0x7b
jne 0x4b3cbf
cmp dword [esp + 0x50], 0x2d
jne 0x4b3cbf
mov eax, 0xaaaaaaab
mov ecx, edi
mul edi
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
add ecx, 0xe
push ecx
lea ecx, [esp + 0x14]
call fcn.00476250
mov esi, 2
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3ca7
inc edi
mov dword [esp + 0x6c], edi
jmp 0x4b350a
cmp dword [esp + 0x48], 0x2d
jne 0x4b3501
cmp dword [esp + 0x50], 0x7d
jne 0x4b3501
mov esi, 2
lea ebx, [ebx]
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3ce0
test edi, edi
je 0x4b3cfb
dec edi
mov dword [esp + 0x6c], edi
test edi, edi
jne 0x4b3d18
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x10]
movzx edx, al
neg edx
sbb edx, edx
and edx, 0x11
push edx
call fcn.00476250
jmp 0x4b350a
xor edx, edx
lea eax, [edi - 1]
mov ecx, 3
div ecx
lea ecx, [esp + 0x10]
add edx, 0xe
push edx
call fcn.00476250
jmp 0x4b350a
cmp dword [esp + 0x40], 0x11
jne 0x4b3e0b
push 0x5b76a8
lea ecx, [esp + 0x14]
call fcn.00480180
test al, al
je 0x4b3d7d
mov byte [esp + 0x68], 0
mov esi, 3
lea ecx, [ecx]
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3d60
push esi
lea ecx, [esp + 0x14]
call fcn.00476250
jmp 0x4b350a
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
cmp ecx, 0x2d
jne 0x4b3db8
cmp eax, 0x2d
jne 0x4b3db8
push 0xd
lea ecx, [esp + 0x14]
call fcn.00476250
mov esi, 2
nop
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3da0
mov byte [esp + 0xf], 0
jmp 0x4b350a
cmp ecx, 0x7b
jne 0x4b3501
cmp eax, 0x2d
jne 0x4b3501
mov eax, 0xaaaaaaab
lea ecx, [esp + 0x10]
mul edi
shr edx, 1
lea eax, [edx + edx*2]
sub edi, eax
add edi, 0xe
push edi
call fcn.00476250
mov esi, 2
lea ebx, [ebx]
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3df0
mov dword [esp + 0x6c], 1
jmp 0x4b350a
cmp dword [esp + 0x40], 0
jne 0x4b3501
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x10]
add eax, 0xffffffd0
cmp eax, 9
ja 0x4b3ebe
xor ebx, ebx
push 3
mov dword [esp + 0x64], ebx
call fcn.00476250
cmp dword [esp + 0x48], 0x30
jne 0x4b3ea3
mov eax, dword [esp + 0x50]
cmp eax, 0x58
je 0x4b3e7f
cmp eax, 0x78
je 0x4b3e7f
cmp eax, 0x4f
je 0x4b3e56
cmp eax, 0x6f
jne 0x4b3ea3
mov esi, 2
jmp 0x4b3e60
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3e60
mov dword [esp + 0x74], 8
mov byte [esp + 0xd], bl
jmp 0x4b350a
mov esi, 2
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3e84
mov dword [esp + 0x74], 0x10
mov byte [esp + 0xd], bl
jmp 0x4b350a
lea ecx, [esp + 0x10]
call fcn.004761d0
mov dword [esp + 0x74], 0xa
mov byte [esp + 0xd], 1
jmp 0x4b350a
push 0x5b76cc
call fcn.00480180
test al, al
je 0x4b3ef4
push 0x11
lea ecx, [esp + 0x14]
mov byte [esp + 0x6c], 1
call fcn.00476250
mov esi, 3
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3ee1
jmp 0x4b350a
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
cmp esi, 0x2d
jne 0x4b3f2e
cmp eax, 0x2d
jne 0x4b3f2e
push 0xd
lea ecx, [esp + 0x14]
call fcn.00476250
mov esi, 2
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3f16
mov byte [esp + 0xf], 1
jmp 0x4b350a
cmp esi, 0x7b
jne 0x4b3f7b
cmp eax, 0x2d
jne 0x4b3f7b
mov eax, 0xaaaaaaab
lea ecx, [esp + 0x10]
mul edi
shr edx, 1
lea eax, [edx + edx*2]
sub edi, eax
add edi, 0xe
push edi
call fcn.00476250
mov esi, 2
jmp 0x4b3f60
lea ecx, [esp + 0x10]
call fcn.004761d0
sub esi, 1
jne 0x4b3f60
mov dword [esp + 0x6c], 1
jmp 0x4b350a
cmp esi, 0x22
jne 0x4b3f87
push 4
jmp 0x4b34f8
cmp esi, 0x27
jne 0x4b40d5
xor ebx, ebx
lea ecx, [esp + 0x10]
push 5
mov dword [esp + 0x64], ebx
call fcn.00476250
lea ecx, [esp + 0x10]
call fcn.004761d0
mov edi, dword [esp + 0x58]
cmp byte [edi + 0xc51], bl
je 0x4b350a
cmp dword [esp + 0x48], esi
jne 0x4b401a
mov esi, dword [esp + 0x50]
cmp esi, 0x7f
ja 0x4b3fe1
cmp esi, 0x61
jl 0x4b3fd3
cmp esi, 0x7a
jle 0x4b4004
mov eax, dword [esp + 0x50]
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x4b3ffd
jmp 0x4b4004
mov ecx, dword [esp + 0x50]
call fcn.00472b20
cmp eax, 1
je 0x4b4004
test eax, eax
je 0x4b4004
cmp eax, 2
je 0x4b4004
cmp eax, 4
je 0x4b4004
cmp dword [esp + 0x50], 0x5f
jne 0x4b401a
lea ecx, [esp + 0x10]
call fcn.004761d0
mov dword [esp + 0x40], 1
jmp 0x4b350a
cmp dword [esp + 0x50], 0x27
je 0x4b350a
mov ecx, dword [esp + 0x48]
cmp ecx, 0x7f
ja 0x4b4051
cmp ecx, 0x61
jl 0x4b4038
cmp ecx, 0x7a
jle 0x4b400d
mov eax, dword [esp + 0x48]
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x4b406d
mov dword [esp + 0x40], 1
jmp 0x4b350a
mov ecx, dword [esp + 0x48]
call fcn.00472b20
cmp eax, 1
je 0x4b400d
test eax, eax
je 0x4b400d
cmp eax, 2
je 0x4b400d
cmp eax, 4
je 0x4b400d
mov ecx, dword [esp + 0x48]
cmp ecx, 0x5f
je 0x4b400d
cmp ecx, 0x3a
jne 0x4b408c
mov byte [esp + 0xe], bl
mov dword [esp + 0x40], 0xb
jmp 0x4b350a
mov ecx, dword [esp + 0x48]
cmp ecx, 0x5b
je 0x4b409e
cmp ecx, 0x28
jne 0x4b350a
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], 0xb
call fcn.004761d0
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], ecx
push dword [esp + 0x40]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov dword [esp + 0x40], ebx
jmp 0x4b350a
cmp esi, 0x3f
jne 0x4b4184
xor ebx, ebx
lea ecx, [esp + 0x10]
push 0xb
mov dword [esp + 0x64], ebx
mov byte [esp + 0x12], bl
call fcn.00476250
mov edi, dword [esp + 0x58]
cmp byte [edi + 0xc52], bl
je 0x4b350a
mov esi, dword [esp + 0x50]
cmp esi, 0x7f
ja 0x4b4124
cmp esi, 0x61
jl 0x4b4116
cmp esi, 0x7a
jle 0x4b414b
mov eax, dword [esp + 0x50]
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x4b4140
jmp 0x4b414b
mov ecx, dword [esp + 0x50]
call fcn.00472b20
cmp eax, 1
je 0x4b414b
test eax, eax
je 0x4b414b
cmp eax, 2
je 0x4b414b
cmp eax, 4
je 0x4b414b
cmp dword [esp + 0x50], 0x5f
jne 0x4b350a
cmp esi, 0x7f
ja 0x4b4165
mov eax, dword [esp + 0x50]
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x4b4004
jmp 0x4b350a
mov ecx, dword [esp + 0x50]
call fcn.00472b20
test eax, eax
je 0x4b350a
cmp eax, 2
je 0x4b350a
jmp 0x4b4004
mov ecx, esi
call fcn.004b2010
test al, al
je 0x4b41a5
xor ebx, ebx
lea ecx, [esp + 0x10]
push 0xb
mov dword [esp + 0x64], ebx
call fcn.00476250
jmp 0x4b350a
cmp esi, 0x2c
je 0x4b4227
cmp esi, 0x3b
je 0x4b4227
cmp esi, 0x28
je 0x4b4227
cmp esi, 0x29
je 0x4b4227
cmp esi, 0x5b
je 0x4b4227
cmp esi, 0x5d
je 0x4b4227
cmp esi, 0x7b
je 0x4b4227
cmp esi, 0x7d
je 0x4b4227
cmp esi, 0x7f
ja 0x4b41f4
cmp esi, 0x61
jl 0x4b41dc
cmp esi, 0x7a
jle 0x4b4217
lea eax, [esi - 0x41]
cmp eax, 0x19
ja 0x4b420e
push 1
lea ecx, [esp + 0x14]
call fcn.00476250
jmp 0x4b350a
mov ecx, esi
call fcn.00472b20
cmp eax, 1
je 0x4b4217
test eax, eax
je 0x4b4217
cmp eax, 2
je 0x4b4217
cmp eax, 4
je 0x4b4217
cmp esi, 0x5f
jne 0x4b3501
push 1
lea ecx, [esp + 0x14]
call fcn.00476250
jmp 0x4b350a
push 0xb
lea ecx, [esp + 0x14]
call fcn.00476250
lea ecx, [esp + 0x10]
call fcn.004761d0
push dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x20], ecx
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00475ef0
mov dword [esp + 0x40], 0
jmp 0x4b350a