Function at 0x47d3a2
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x370
mov eax, dword [0x59a024]
xor eax, esp
mov dword [esp + 0x36c], eax
mov edx, dword [esp + 0x374]
mov eax, dword [esp + 0x378]
mov ecx, dword [esp + 0x380]
push ebx
mov ebx, dword [esp + 0x38c]
push ebp
push esi
push edi
push edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x98], ebx
call fcn.00456430
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov ebp, eax
xor eax, eax
xor edi, edi
xor esi, esi
add esp, 4
mov dword [esp + 0x70], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x10], eax
mov byte [esp + 0x2b], 1
mov dword [esp + 0x74], 0x10
mov dword [esp + 0x78], 4
mov dword [esp + 0x6c], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x20], 1
cmp ebp, eax
je 0x47d3fd
test ebx, ebx
je 0x47d2bd
mov dword [ebx], eax
push ebp
call fcn.00482af0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x47f10a
xor eax, eax
cmp dword [ebp], 3
sete al
xor ebx, ebx
cmp dword [esp + 0x394], ebx
mov dword [esp + 0x54], eax
jle 0x47d35a
mov ebp, dword [esp + 0x30]
add ebp, 4
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
mov eax, dword [ebp - 4]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push eax
push ecx
call fcn.00483510
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47d348
mov ecx, dword [ebp - 4]
cmp ecx, 0x100
jne 0x47d326
mov edx, dword [ebp]
mov edx, dword [edx]
mov dword [esp + 0x74], edx
cmp ecx, 0x161
jne 0x47d333
mov ecx, dword [ebp]
mov esi, dword [ecx]
inc ebx
add ebp, 0xc
cmp ebx, dword [esp + 0x394]
jl 0x47d2f1
mov dword [esp + 0x5c], esi
test eax, eax
je 0x47d360
mov edx, dword [esp + 0x14]
push edx
call fcn.00483690
add esp, 4
jmp 0x47f137
mov eax, dword [esp + 0x10]
jmp 0x47d344
test esi, esi
jne 0x47d377
mov eax, dword [esp + 0x74]
push eax
call fcn.0047cf90
mov esi, eax
add esp, 4
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x6c]
lea eax, [ebx + 0x31acbca5]
cmp eax, 7
ja case.default.0x47d38d
movzx ecx, byte [eax + 0x47f15c]
jmp dword [ecx*4 + 0x47f154]
mov dword [esp + 0x20], edi
mov dword [esp + 0x78], 3
jmp 0x47d3ae
mov dword [esp + 0x20], edi
mov dword [esp + 0x78], 4
mov ebp, dword [esp + 0x14]
push 4
lea edx, [esp + 0x7c]
push edx
push 0
push ebp
call fcn.00484590
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
je 0x47d3da
push ebp
call fcn.00483690
add esp, 4
jmp 0x47f137
mov eax, dword [esp + 0x384]
push eax
call fcn.00482e50
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x47d407
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00483690
add esp, 4
mov eax, 0xb3
jmp 0x47f13b
mov edx, dword [esp + 0x38c]
push ebp
push edx
call fcn.00484760
push ebp
mov dword [esp + 0x38], eax
call fcn.00484200
add esp, 0xc
cmp dword [esp + 0x2c], edi
jne 0x47d43f
mov eax, dword [esp + 0x14]
push eax
call fcn.00483690
add esp, 4
mov eax, 0x60
jmp 0x47f13b
mov ebp, dword [esp + 0x2c]
cmp dword [esp + 0x20], edi
je 0x47d479
push 0x11
push ebp
call fcn.00483010
mov edi, eax
add esp, 8
mov dword [esp + 0x70], edi
test edi, edi
jne 0x47d479
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00483690
push ebp
call fcn.00483690
add esp, 8
lea eax, [edi + 0x60]
jmp 0x47f13b
cmp ebx, 0x360
ja 0x47d6f5
je 0x47d564
cmp ebx, 0x21
jne case.0x47e2c2.833404061
push 0x130
push ebp
lea edx, [esp + 0x48]
push edx
push 0
call fcn.00483430
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
push 0x11
push ebp
lea eax, [esp + 0x3c]
push eax
push 0
call fcn.00483430
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
je 0x47d4e1
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00420770
add esp, 4
jmp 0x47dc5f
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
push esi
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x94], edx
lea edx, [esp + 0x3c]
mov dword [esp + 0x98], eax
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x98]
push ecx
call fcn.004ad6c0
mov edx, dword [esp + 0x58]
push edx
mov esi, eax
call fcn.00420770
mov eax, dword [esp + 0x50]
push eax
call fcn.00420770
add esp, 0x1c
test esi, esi
jne 0x47e50c
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x14]
push ecx
push edx
push 0x11
push eax
call fcn.00484590
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
push ecx
push edx
call fcn.00420790
add esp, 0x18
jmp 0x47dc5f
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
push eax
call fcn.0047ce50
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
mov ecx, dword [esp + 0x384]
push ecx
call fcn.00482e50
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x47d5a4
mov dword [esp + 0x10], 0xb3
jmp 0x47dc5f
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov ecx, dword [eax]
push ebx
push ecx
call fcn.00484760
mov ebp, eax
push ebx
mov dword [esp + 0x2c], ebp
call fcn.00484200
add esp, 0xc
test ebp, ebp
jne 0x47d5d4
mov dword [esp + 0x10], 0x60
jmp 0x47dc5f
push 0x103
push ebp
call fcn.00483350
add esp, 8
test eax, eax
je 0x47d611
push 1
lea edx, [esp + 0x2f]
push edx
push 0x103
push ebp
call fcn.00484590
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
je 0x47d611
push ebp
call fcn.00483690
add esp, 4
jmp 0x47dc5f
mov ebx, dword [esp + 0x20]
push 0x11
push ebx
call fcn.00483010
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x47d63c
push ebx
call fcn.00483690
add esp, 4
mov dword [esp + 0x10], 0x60
jmp 0x47dc5f
mov eax, dword [ebp + 0x1c]
add eax, dword [edi + 0x1c]
mov dword [esp + 0x4c], eax
test esi, esi
jne 0x47d67f
mov esi, eax
mov eax, dword [esp + 0x4c]
push eax
call fcn.00420e30
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x47d69f
push ebp
call fcn.00482600
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00483690
add esp, 8
mov dword [esp + 0x10], 2
jmp 0x47dc5f
cmp esi, eax
jbe 0x47d64c
push ebx
call fcn.00483690
push ebp
call fcn.00482600
add esp, 8
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x18]
push edx
push eax
push ebx
call fcn.0040dc50
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [edi + 0x1c]
push ecx
push edx
add eax, ebx
push eax
call fcn.0040dc50
mov ecx, dword [esp + 0x2c]
push esi
push ebx
push 0x11
push ecx
call fcn.00484590
mov edx, dword [esp + 0x74]
push edx
push ebx
mov dword [esp + 0x40], eax
call fcn.00420790
push ebp
call fcn.00482600
mov eax, dword [esp + 0x54]
push eax
call fcn.00483690
add esp, 0x38
jmp 0x47dc5f
cmp ebx, 0x3e1
ja 0x47dc25
je 0x47e8c4
lea eax, [ebx - 0x362]
cmp eax, 0x7e
ja case.0x47e2c2.833404061
movzx ecx, byte [eax + 0x47f19c]
jmp dword [ecx*4 + 0x47f164]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
push edx
call fcn.0047ce50
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
mov ebx, dword [eax + 4]
add ebx, dword [edi + 0x1c]
mov dword [esp + 0x24], eax
test esi, esi
jne 0x47d774
mov esi, ebx
push ebx
call fcn.00420e30
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x47d785
mov dword [esp + 0x10], 2
jmp 0x47dc5f
cmp esi, ebx
jbe 0x47d758
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x18]
push ecx
push edx
push ebp
call fcn.0040dc50
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [edi + 0x1c]
push ecx
push edx
add eax, ebp
push eax
call fcn.0040dc50
mov ecx, dword [esp + 0x2c]
push esi
push ebp
push 0x11
push ecx
call fcn.00484590
push ebx
push ebp
mov dword [esp + 0x40], eax
call fcn.00420790
add esp, 0x30
jmp 0x47dc5f
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
push edx
call fcn.0047ce50
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
mov ebx, dword [eax + 4]
add ebx, dword [edi + 0x1c]
mov dword [esp + 0x24], eax
test esi, esi
jne 0x47d81a
mov esi, ebx
push ebx
call fcn.00420e30
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x47d82b
mov dword [esp + 0x10], 2
jmp 0x47dc5f
cmp esi, ebx
jbe 0x47d7fe
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
push ebp
call fcn.0040dc50
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x18]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [edx + 4]
push ecx
jmp 0x47d7a1
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
push edx
call fcn.0047ce50
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 4]
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
jae 0x47d880
mov eax, ecx
test esi, esi
jne 0x47d8a2
mov esi, eax
push esi
call fcn.00420e30
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x47d8b3
mov dword [esp + 0x10], 2
jmp 0x47dc5f
cmp esi, eax
jbe 0x47d886
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
mov ecx, dword [edi + 0x18]
push esi
push ecx
push ebp
call fcn.0040dc50
add esp, 0xc
xor eax, eax
test esi, esi
jle 0x47d8d4
mov edx, dword [ebx]
mov cl, byte [eax + edx]
xor byte [eax + ebp], cl
inc eax
cmp eax, esi
jl 0x47d8c7
mov edx, dword [esp + 0x14]
push esi
push ebp
push 0x11
push edx
call fcn.00484590
push esi
push ebp
mov dword [esp + 0x28], eax
call fcn.00420790
add esp, 0x18
jmp 0x47dc5f
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov ecx, eax
shr eax, 3
and ecx, 7
mov ebp, eax
push edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x70], ebp
call fcn.0047ce50
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
test esi, esi
jne 0x47d93e
mov dword [esp + 0x10], 0xd0
jmp 0x47dc5f
mov ebx, dword [esp + 0x30]
xor eax, eax
test ebx, ebx
setne al
add eax, ebp
add eax, esi
cmp dword [edi + 0x1c], eax
jae 0x47d95f
mov dword [esp + 0x10], 0x71
jmp 0x47dc5f
push esi
call fcn.00420e30
mov ecx, eax
add esp, 4
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x47d97f
mov dword [esp + 0x10], 2
jmp 0x47dc5f
xor ebp, ebp
test esi, esi
jle 0x47d9b7
mov edx, dword [esp + 0x6c]
lea eax, [edx + ebp]
add eax, dword [edi + 0x18]
test ebx, ebx
je 0x47d9ad
mov dl, byte [eax + 1]
mov al, byte [eax]
mov cl, 8
sub cl, bl
shr dl, cl
mov ecx, ebx
shl al, cl
mov ecx, dword [esp + 0x20]
or dl, al
mov byte [ecx + ebp], dl
jmp 0x47d9b2
mov dl, byte [eax]
mov byte [ecx + ebp], dl
inc ebp
cmp ebp, esi
jl 0x47d985
mov eax, dword [esp + 0x14]
push esi
push ecx
push 0x11
push eax
call fcn.00484590
mov ecx, dword [esp + 0x30]
push esi
push ecx
mov dword [esp + 0x28], eax
call fcn.00420790
add esp, 0x18
jmp 0x47dc5f
test esi, esi
jne 0x47d9fd
mov esi, 0x10
call fcn.004a9140
mov ebp, eax
test ebp, ebp
jne 0x47da0f
mov dword [esp + 0x10], 2
jmp 0x47dc5f
cmp esi, 0x10
jbe 0x47d9e5
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
push ebp
call fcn.004a9180
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x18]
push edx
push eax
push ebp
call fcn.004a96b0
push 0x10
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x154]
push edx
push ebp
call fcn.004a9760
push 1
push ebp
call fcn.004a9160
mov ecx, dword [esp + 0x3c]
push esi
lea eax, [esp + 0x168]
push eax
push 0x11
push ecx
call fcn.00484590
add esp, 0x38
mov dword [esp + 0x10], eax
jmp 0x47dc5f
test esi, esi
jne 0x47daa0
mov esi, 0x10
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x18]
push edx
push eax
lea ecx, [esp + 0x144]
push ecx
call fcn.004a90c0
mov eax, dword [esp + 0x20]
push esi
lea edx, [esp + 0x14c]
push edx
push 0x11
push eax
call fcn.00484590
add esp, 0x1c
mov dword [esp + 0x10], eax
jmp 0x47dc5f
cmp esi, 0x10
jbe 0x47da6a
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
test esi, esi
jne 0x47daf1
mov esi, 0x14
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x18]
push ecx
push edx
lea eax, [esp + 0x144]
push eax
call fcn.004a86b0
mov edx, dword [esp + 0x20]
push esi
lea ecx, [esp + 0x14c]
push ecx
push 0x11
push edx
call fcn.00484590
add esp, 0x1c
mov dword [esp + 0x10], eax
jmp 0x47dc5f
cmp esi, 0x14
jbe 0x47dabb
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
test esi, esi
jne 0x47db42
mov esi, 0x1c
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x18]
push eax
push ecx
lea edx, [esp + 0x144]
push edx
call fcn.004a5b90
mov ecx, dword [esp + 0x20]
push esi
lea eax, [esp + 0x14c]
push eax
push 0x11
push ecx
call fcn.00484590
add esp, 0x1c
mov dword [esp + 0x10], eax
jmp 0x47dc5f
cmp esi, 0x1c
jbe 0x47db0c
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
test esi, esi
jne 0x47db77
mov esi, 0x20
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x18]
push edx
push eax
lea ecx, [esp + 0x144]
push ecx
call fcn.004a5a40
jmp 0x47da7f
cmp esi, 0x20
jbe 0x47db5d
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
test esi, esi
jne 0x47dbc8
mov esi, 0x30
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x18]
push ecx
push edx
lea eax, [esp + 0x144]
push eax
call fcn.004a7260
mov edx, dword [esp + 0x20]
push esi
lea ecx, [esp + 0x14c]
push ecx
push 0x11
push edx
call fcn.00484590
add esp, 0x1c
mov dword [esp + 0x10], eax
jmp 0x47dc5f
cmp esi, 0x30
jbe 0x47db92
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
test esi, esi
jne 0x47dc16
mov esi, 0x40
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x18]
push eax
push ecx
lea edx, [esp + 0x144]
push edx
call fcn.004a7150
mov ecx, dword [esp + 0x20]
push esi
lea eax, [esp + 0x14c]
push eax
push 0x11
push ecx
call fcn.00484590
add esp, 0x1c
mov dword [esp + 0x10], eax
jmp 0x47dc5f
cmp esi, 0x40
jbe 0x47dbe3
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
cmp ebx, 0xce53435e
ja 0x47e2b3
je 0x47e222
cmp ebx, 0x1051
ja 0x47df63
cmp ebx, 0x1050
jae 0x47dca2
cmp ebx, 0x3e2
je case.0x47e2c2.833404058
mov dword [esp + 0x10], 0x70
mov eax, dword [esp + 0x70]
test eax, eax
je 0x47dc70
push eax
call fcn.00482600
add esp, 4
mov eax, dword [esp + 0x2c]
push eax
call fcn.00483690
add esp, 4
cmp dword [esp + 0x10], 0
je 0x47f0d6
mov eax, dword [esp + 0x14]
test eax, eax
je 0x47f137
push eax
call fcn.00483690
add esp, 4
jmp 0x47f137
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + 4]
xor ecx, ecx
cmp dword [eax + 8], 0x14
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
jne 0x47e353
cmp dword [ebp], 1
jne 0x47dcd9
cmp dword [ebp + 4], ecx
jne 0x47e353
cmp dword [ebp + 8], ecx
jne 0x47e353
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x10]
push edx
push 3
push eax
call fcn.004561b0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x47dc5f
lea ecx, [edi + 0x98]
push ecx
lea edx, [esp + 0x64]
push edx
push 0
call fcn.00428dc0
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x50], eax
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x54], ecx
mov eax, dword [edi + 0x10]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + eax + 1]
add esp, 0xc
cmp ecx, eax
jb 0x47de3a
jbe 0x47dda1
push 0x800
call fcn.00420f60
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x47de3a
lea ecx, [esp + 0x40]
push ecx
push 0
push 0
call fcn.0042b650
add esp, 8
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x90]
push edx
push eax
call fcn.00430360
add esp, 0x10
test eax, eax
jne 0x47de3a
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
cmp ebx, 0x1051
jne 0x47de21
mov dword [esp + 0x4c], 1
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x34]
push edx
push eax
lea ecx, [esp + 0x68]
push ecx
lea edx, [edi + 8]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.00490bc0
mov ecx, dword [esp + 0x78]
push ecx
mov ebx, eax
call fcn.00420770
mov edx, dword [esp + 0x44]
add esp, 0x18
mov dword [esp + 0x64], 0
cmp edi, dword [edx + 0x1c]
je 0x47ddf7
push edi
call fcn.005450c0
add esp, 4
mov eax, dword [esp + 0x24]
test eax, eax
je 0x47de0a
push 0
push eax
call fcn.00420960
add esp, 8
test ebx, ebx
je 0x47de7d
call fcn.004207d0
call fcn.00477ae0
mov dword [esp + 0x10], eax
jmp 0x47dc5f
lea ecx, [esp + 0x40]
push ecx
lea edx, [edi + 8]
push edx
call fcn.004909f0
add esp, 8
test eax, eax
je 0x47ddb1
mov eax, dword [esp + 0x64]
push eax
mov dword [esp + 0x14], 7
call fcn.00420770
mov ecx, dword [esp + 0x30]
add esp, 4
cmp edi, dword [ecx + 0x1c]
je 0x47de61
push edi
call fcn.005450c0
add esp, 4
mov eax, dword [esp + 0x24]
test eax, eax
je 0x47dc5f
push 0
push eax
call fcn.00420960
add esp, 8
jmp 0x47dc5f
mov ebx, dword [ebp]
cmp ebx, 1
jne 0x47de8f
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
jmp 0x47ded3
mov edx, dword [ebp + 8]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [ebp + 4]
mov edi, esi
call fcn.0047d180
mov edx, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
push edx
push eax
call fcn.00420790
add esp, 0x10
cmp dword [esp + 0x10], 0
jne 0x47dc5f
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], esi
test esi, esi
je 0x47df28
cmp edi, esi
jae 0x47df22
push esi
call fcn.00420eb0
mov ebp, eax
add esp, 4
mov dword [esp + 0x20], ebp
test ebp, ebp
jne 0x47df0d
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push edx
call fcn.00420790
add esp, 8
mov dword [esp + 0x10], 2
jmp 0x47dc5f
mov eax, ebp
push edi
sub eax, edi
add eax, esi
push ebx
push eax
call fcn.0040dc50
add esp, 0xc
mov ebx, ebp
jmp 0x47df26
sub edi, esi
add ebx, edi
mov edi, esi
mov ecx, dword [esp + 0x14]
push edi
push ebx
push 0x11
push ecx
call fcn.00484590
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
push edx
push eax
call fcn.00420790
mov eax, dword [esp + 0x38]
add esp, 0x18
test eax, eax
je 0x47dc5f
push esi
push eax
call fcn.00420790
add esp, 8
jmp 0x47dc5f
add ebx, 0x31acbcad
cmp ebx, 0xa
ja case.0x47e2c2.833404061
jmp dword [ebx*4 + 0x47f21c]
mov eax, 3
jmp 0x47df93
mov eax, 4
jmp 0x47df93
mov eax, 5
jmp 0x47df93
mov eax, 6
mov ecx, dword [esp + 0x18]
mov ebx, dword [ecx + 4]
push eax
mov dword [esp + 0x28], ebx
call fcn.004a9af0
add esp, 4
mov dword [esp + 0x4c], eax
test eax, eax
je 0x47e4f4
mov ebp, dword [eax]
cmp ebp, 0x40
ja 0x47e4f4
mov edx, dword [esp + 0x18]
cmp dword [edx + 8], 0x12
jne 0x47e353
test ebx, ebx
je 0x47e353
mov al, byte [ebx + 9]
test al, al
jne 0x47dfe5
cmp byte [ebx], al
je 0x47e353
jmp 0x47dfea
cmp byte [ebx], 0
je 0x47dffa
cmp dword [ebx + 5], 0
jbe 0x47dffa
cmp dword [ebx + 1], 0
je 0x47e353
test al, al
je 0x47e00e
cmp dword [ebx + 0xe], 0
jbe 0x47e00e
cmp dword [ebx + 0xa], 0
je 0x47e353
test esi, esi
je 0x47e7c2
cmp esi, 0x240
ja 0x47e7c2
test al, al
jne 0x47e032
cmp esi, ebp
ja 0x47e7c2
test al, al
je 0x47e042
mov eax, ebp
imul eax, eax, 0xff
cmp esi, eax
ja 0x47e7c2
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
push ecx
call fcn.0047ce50
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
je 0x47e0fd
mov ebx, dword [eax + 1]
mov eax, dword [eax + 5]
test ebx, ebx
jne 0x47e091
push ebp
lea ebx, [esp + 0xac]
mov edx, ebx
push 0
push edx
mov dword [esp + 0x3c], ebp
call fcn.00412eb0
add esp, 0xc
mov eax, ebp
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
push ecx
push eax
push ebx
push edx
call fcn.004a99a0
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x47e0b8
mov dword [esp + 0x10], 2
jmp 0x47dc5f
push ebx
call fcn.004a99f0
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x18]
push eax
push ecx
push ebx
call fcn.004a9a20
push 0x40
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0xc0]
push eax
push ebx
call fcn.004a9a40
push 1
push ebx
call fcn.004a9800
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
add esp, 0x28
lea ecx, [esp + 0xa8]
jmp 0x47e103
mov ecx, dword [edi + 0x18]
mov edi, dword [edi + 0x1c]
cmp byte [eax + 9], 0
je 0x47e1f3
xor edx, edx
lea eax, [esi + ebp - 1]
div ebp
xor edx, edx
imul eax, ebp
div ebp
mov edx, dword [esp + 0x54]
push edx
push edi
push ecx
mov ebx, eax
mov eax, dword [esp + 0x58]
push eax
call fcn.004a99a0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x47e145
mov dword [esp + 0x10], 2
jmp 0x47dc5f
mov byte [esp + 0x1f], 1
cmp ebx, 1
jb 0x47e1e1
push edi
call fcn.004a99f0
mov al, byte [esp + 0x23]
add esp, 4
cmp al, 1
jbe 0x47e17f
movzx ecx, al
sub ecx, 2
imul ecx, ebp
push ebp
lea edx, [esp + ecx + 0x140]
push edx
push edi
call fcn.004a9a20
add esp, 0xc
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0xe]
test eax, eax
je 0x47e19c
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0xa]
push eax
push edx
push edi
call fcn.004a9a20
add esp, 0xc
push 1
lea eax, [esp + 0x23]
push eax
push edi
call fcn.004a9a20
movzx edx, byte [esp + 0x2b]
dec edx
imul edx, ebp
push ebp
lea ecx, [esp + 0x8c]
push ecx
lea eax, [esp + edx + 0x150]
push eax
push edi
call fcn.004a9a40
mov al, byte [esp + 0x3b]
inc al
movzx ecx, al
add esp, 0x1c
mov byte [esp + 0x1f], al
cmp ecx, ebx
jbe 0x47e153
push 1
push edi
call fcn.004a9800
add esp, 8
lea ecx, [esp + 0x13c]
mov edx, dword [esp + 0x14]
push esi
push ecx
push 0x11
push edx
call fcn.00484590
add esp, 0x10
mov dword [esp + 0x10], eax
jmp 0x47dc5f
mov edi, 3
jmp 0x47e227
mov edi, 4
jmp 0x47e227
mov edi, 5
jmp 0x47e227
mov edi, 6
mov eax, dword [esp + 0x18]
cmp dword [eax + 4], 0
je 0x47e237
cmp dword [eax + 8], 0x50
je 0x47e244
mov dword [esp + 0x10], 0x71
jmp 0x47dc5f
cmp dword [esp + 0x10], 0
jne 0x47dc5f
mov eax, dword [esp + 0x14]
push 1
push eax
call fcn.00483350
add esp, 8
test eax, eax
je 0x47e26f
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
cmp dword [esp + 0x10], 0
jne 0x47dc5f
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
push esi
call fcn.0047ce50
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
push ebx
push esi
push edx
push edi
call fcn.004aca40
add esp, 0x10
mov dword [esp + 0x10], eax
jmp 0x47dc5f
lea eax, [ebx + 0x31acbca1]
cmp eax, 0xb
ja case.0x47e2c2.833404061
jmp dword [eax*4 + 0x47f248]
cmp ebx, 0x3e0
je 0x47e33c
cmp ebx, 0x3e2
je 0x47e33c
cmp ebx, 0xce534366
je 0x47e2e9
cmp ebx, 0xce534368
jne 0x47e2f1
mov dword [esp + 0x50], 4
cmp ebx, 0x371
je 0x47e309
cmp ebx, 0x373
je 0x47e360
mov dword [esp + 0x24], 1
cmp ebx, 0x373
je 0x47e360
cmp ebx, 0x377
je 0x47e360
cmp ebx, 0xce534368
je 0x47e360
cmp ebx, 0x3e2
je 0x47e360
cmp dword [edi + 0x1c], 0x30
je 0x47e360
mov dword [esp + 0x10], 0x63
jmp 0x47dc5f
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0x14]
call fcn.00477f30
mov dword [esp + 0x50], eax
test eax, eax
jne 0x47e2f1
mov dword [esp + 0x10], 0x71
jmp 0x47dc5f
push 0x100
push ebp
call fcn.00483010
add esp, 8
test eax, eax
je 0x47e6de
mov edx, dword [eax + 0x18]
cmp dword [edx], 0x10
push eax
jne 0x47e6d6
call fcn.00482600
add esp, 4
cmp dword [esp + 0x74], 0x10
je 0x47e39f
mov dword [esp + 0x10], 0x68
jmp 0x47dc5f
test esi, esi
je 0x47e3b5
cmp esi, 0x30
je 0x47e3b5
mov dword [esp + 0x10], 0x68
jmp 0x47dc5f
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 4]
mov esi, dword [ebx]
mov ecx, 8
lea edi, [esp + 0xa8]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebx + 8]
mov ecx, 8
lea edi, [esp + 0xc8]
rep movsd dword es:[edi], dword [esi]
cmp dword [ebx + 0x10], 0
je 0x47e424
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00482f20
mov ebp, dword [esp + 0x74]
mov ecx, dword [ebp + 0x18]
add esp, 4
test eax, eax
je 0x47e415
cmp dword [eax + 0x38], 0
jne 0x47e415
movzx eax, byte [ecx]
mov edx, dword [ebx + 0x10]
mov byte [edx], al
movzx eax, byte [ecx + 1]
mov edx, dword [ebx + 0x10]
mov byte [edx + 1], al
jmp 0x47e428
mov ecx, dword [ebx + 0x10]
mov byte [ecx], 0xff
mov edx, dword [ebx + 0x10]
mov byte [edx + 1], 0xff
jmp 0x47e428
mov ebp, dword [esp + 0x70]
mov eax, 0x20
cmp dword [ebx + 4], eax
je 0x47e43f
mov dword [esp + 0x10], 0x71
jmp 0x47dc5f
cmp dword [ebx + 0xc], eax
je 0x47e451
mov dword [esp + 0x10], 0x71
jmp 0x47dc5f
xor eax, eax
cmp dword [esp + 0x24], eax
je 0x47e501
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x13c]
mov dword [esp + 0x44], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x48], 0x40
mov dword [esp + 0x68], 0x30
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x50], eax
je 0x47e4cb
mov eax, dword [esp + 0x54]
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0x48]
push edx
push str.master_secret
lea eax, [esp + 0x44]
push eax
push ecx
call fcn.004ad0a0
add esp, 0x18
jmp 0x47e4ec
mov edx, dword [esp + 0x54]
push edx
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x40]
push str.master_secret
push edx
call fcn.004ad290
add esp, 0x14
test eax, eax
je 0x47e612
mov dword [esp + 0x10], 6
jmp 0x47dc5f
call fcn.004a8750
mov edi, eax
test edi, edi
jne 0x47e519
mov dword [esp + 0x10], 2
jmp 0x47dc5f
call fcn.004a8530
mov esi, eax
test esi, esi
jne 0x47e53a
push edi
call fcn.00420770
add esp, 4
mov dword [esp + 0x10], 2
jmp 0x47dc5f
lea eax, [esp + 0x13c]
mov dword [esp + 0x20], eax
mov ebx, 0x5777a0
lea ebx, [ebx]
push esi
call fcn.004a7300
mov ecx, dword [ebx]
mov eax, ecx
lea edx, [eax + 1]
add esp, 4
mov dword [esp + 0x30], edx
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x47e564
sub eax, dword [esp + 0x30]
push eax
push ecx
push esi
call fcn.004a8580
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
push eax
push ecx
push esi
call fcn.004a8580
push 0x40
lea edx, [esp + 0xc4]
push edx
push esi
call fcn.004a8580
push 0x14
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x114]
push ecx
push esi
call fcn.004a8620
push edi
call fcn.004a87a0
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
push edx
push eax
push edi
call fcn.004a8f10
mov ecx, dword [esp + 0x9c]
add esp, 0x44
push ecx
lea edx, [esp + 0xec]
push edx
push edi
call fcn.004a8f10
mov ecx, dword [esp + 0x2c]
push 0x10
lea eax, [esp + 0x68]
push eax
push ecx
push edi
call fcn.004a8fc0
add dword [esp + 0x3c], 0x10
add ebx, 4
add esp, 0x1c
cmp ebx, 0x5777ac
jl 0x47e550
push edi
call fcn.00420770
push esi
call fcn.00420770
add esp, 8
mov eax, dword [esp + 0x14]
push 0x30
lea edx, [esp + 0x140]
push edx
push 0x11
push eax
call fcn.00484590
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
mov edx, dword [esp + 0x14]
push 4
lea ecx, [esp + 0x78]
push ecx
push 0x100
push edx
mov dword [esp + 0x84], 0x10
call fcn.00484590
add esp, 0x10
cmp dword [esp + 0x24], 0
mov dword [esp + 0x10], eax
je 0x47dc5f
mov ecx, dword [esp + 0x14]
push 1
lea eax, [esp + 0x2f]
push eax
push 0x108
push ecx
call fcn.00484590
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
mov eax, dword [esp + 0x14]
push 1
lea edx, [esp + 0x2f]
push edx
push 0x10a
push eax
call fcn.00484590
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
mov edx, dword [esp + 0x14]
push 1
lea ecx, [esp + 0x2f]
push ecx
push 0x10c
push edx
call fcn.00484590
add esp, 0x10
mov dword [esp + 0x10], eax
jmp 0x47dc5f
call fcn.00482600
add esp, 4
mov dword [esp + 0x10], 0x68
jmp 0x47dc5f
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + 4]
cmp ebx, 0xce534369
jne 0x47e733
cmp dword [edi + 0x1c], 0x30
je 0x47e733
mov dword [esp + 0x10], 0x63
jmp 0x47dc5f
mov ecx, dword [esp + 0x2c]
push 0x100
push ecx
call fcn.00483010
add esp, 8
test eax, eax
je 0x47e6de
mov edx, dword [eax + 0x18]
cmp dword [edx], 0x10
push eax
jne 0x47e6d6
call fcn.00482600
add esp, 4
cmp dword [esp + 0x74], 0x10
je 0x47e76e
mov dword [esp + 0x10], 0x68
jmp 0x47dc5f
test esi, esi
je 0x47e784
cmp esi, 0x30
je 0x47e784
mov dword [esp + 0x10], 0x68
jmp 0x47dc5f
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov edx, dword [ebp + 4]
mov dword [esp + 0x44], edx
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x13c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 0x30
mov eax, dword [ebp]
cmp eax, 0x378
jne 0x47e7f2
cmp ecx, 0x24
je 0x47e7cf
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
mov ecx, dword [esp + 0x54]
push ecx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x6c]
push str.extended_master_secret
push ecx
call fcn.004ad290
add esp, 0x14
jmp 0x47e84a
call fcn.00477f30
mov esi, eax
test esi, esi
jne 0x47e80a
mov dword [esp + 0x10], 0x71
jmp 0x47dc5f
push esi
call fcn.004a9af0
mov edx, dword [esp + 0x4c]
add esp, 4
cmp edx, dword [eax]
je 0x47e828
mov dword [esp + 0x10], 0xd1
jmp 0x47dc5f
mov eax, dword [esp + 0x54]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x48]
push edx
push str.extended_master_secret
lea eax, [esp + 0x70]
push eax
push esi
call fcn.004ad0a0
add esp, 0x18
test eax, eax
je 0x47e85b
mov dword [esp + 0x10], 6
jmp 0x47dc5f
cmp dword [ebp + 0xc], 0
je 0x47e89a
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00482f20
mov edi, dword [edi + 0x18]
add esp, 4
test eax, eax
je 0x47e88d
cmp dword [eax + 0x38], 0
jne 0x47e88d
mov edx, dword [ebp + 0xc]
mov al, byte [edi]
mov byte [edx], al
mov ecx, dword [ebp + 0xc]
mov dl, byte [edi + 1]
mov byte [ecx + 1], dl
jmp 0x47e89a
mov eax, dword [ebp + 0xc]
mov byte [eax], 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 1], 0xff
mov eax, dword [esp + 0x14]
push 0x30
lea edx, [esp + 0x140]
push edx
push 0x11
push eax
call fcn.00484590
add esp, 0x10
mov dword [esp + 0x10], eax
jmp 0x47dc5f
cmp ebx, 0x3e1
jne 0x47e8e8
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x21]
call fcn.00477f30
mov dword [esp + 0x50], eax
test eax, eax
jne 0x47e902
mov dword [esp + 0x10], 0x71
jmp 0x47dc5f
cmp ebx, 0xce534367
jne 0x47e8fa
mov dword [esp + 0x50], 4
jmp 0x47e902
cmp ebx, 0x372
je 0x47e90a
mov dword [esp + 0x24], 1
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
push esi
call fcn.0047ce50
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47dc5f
cmp dword [edi + 0x1c], 0x30
je 0x47e93a
mov dword [esp + 0x10], 0x68
jmp 0x47dc5f
push 0x100
push esi
call fcn.00483010
add esp, 8
test eax, eax
je 0x47e6de
mov ecx, dword [eax + 0x18]
cmp dword [ecx], 0x10
push eax
jne 0x47e6d6
call fcn.00482600
add esp, 4
call fcn.004a8750
mov ebx, eax
test ebx, ebx
jne 0x47e97d
mov dword [esp + 0x10], 2
jmp 0x47dc5f
call fcn.004a8530
mov dword [esp + 0x30], eax
test eax, eax
jne 0x47e9a0
push ebx
call fcn.00420770
add esp, 4
mov dword [esp + 0x10], 2
jmp 0x47dc5f
mov edx, dword [esp + 0x18]
mov ebp, dword [edx + 4]
mov esi, dword [ebp + 0x15]
mov ecx, 8
lea edi, [esp + 0xfc]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0xd]
mov ecx, 8
lea edi, [esp + 0x11c]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0xd]
mov ecx, 8
lea edi, [esp + 0xa8]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x15]
mov ecx, 8
lea edi, [esp + 0xc8]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x1d]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [esp + 0x6c], eax
add eax, 0xc
mov dword [eax], ecx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 8]
shr esi, 3
shr eax, 3
shr edi, 3
mov dword [esp + 0x7c], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x4c], edi
cmp dword [esp + 0x5c], ecx
jne 0x47ea2b
xor eax, eax
mov dword [esp + 0x18], eax
xor edx, edx
cmp byte [ebp + 0xc], cl
sete dl
imul edx, edi
add edx, eax
add edx, esi
add edx, edx
mov eax, edx
mov dword [esp + 0x84], edx
cmp eax, 0x240
jbe 0x47ea58
mov eax, 0x240
mov dword [esp + 0x84], eax
cmp dword [esp + 0x24], ecx
je 0x47eafe
lea edx, [esp + 0xfc]
mov dword [esp + 0x44], edx
lea edx, [esp + 0x13c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x64], edx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x48], 0x40
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x50], ecx
je 0x47ead0
mov ecx, dword [esp + 0x54]
push ecx
lea edx, [esp + 0x64]
push edx
mov edx, dword [esp + 0x58]
lea eax, [esp + 0x48]
push eax
push str.key_expansion
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.004ad0a0
add esp, 0x18
jmp 0x47eaf1
mov eax, dword [esp + 0x54]
push eax
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x40]
push str.key_expansion
push eax
call fcn.004ad290
add esp, 0x14
test eax, eax
jne 0x47f000
jmp 0x47ec08
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x13c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x50], 0x5777a0
jmp 0x47eb27
mov eax, dword [esp + 0x84]
cmp dword [esp + 0x20], eax
jae 0x47ec08
mov esi, dword [esp + 0x30]
push esi
call fcn.004a7300
mov edx, dword [esp + 0x54]
mov edi, dword [edx]
mov eax, edi
add esp, 4
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x47eb50
sub eax, ecx
push eax
push edi
push esi
call fcn.004a8580
mov edi, dword [esp + 0x7c]
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x18]
push eax
push ecx
push esi
call fcn.004a8580
push 0x40
lea edx, [esp + 0x118]
push edx
push esi
call fcn.004a8580
push 0x14
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x114]
push ecx
push esi
call fcn.004a8620
push ebx
call fcn.004a87a0
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x18]
push edx
push eax
push ebx
call fcn.004a8f10
mov ecx, dword [esp + 0x9c]
add esp, 0x44
push ecx
lea edx, [esp + 0xec]
push edx
push ebx
call fcn.004a8f10
mov esi, dword [esp + 0x8c]
push 0x10
lea eax, [esp + 0x68]
push eax
push esi
push ebx
call fcn.004a8fc0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x74]
add dword [esp + 0x3c], ecx
add eax, 4
add esi, 0x10
add esp, 0x1c
cmp eax, str.IV_block
mov dword [esp + 0x50], eax
mov dword [esp + 0x80], esi
jl 0x47eb20
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x384]
push edi
push esi
lea edx, [esp + 0x144]
push edx
push 1
push eax
mov eax, dword [esp + 0x28]
call fcn.0047cc50
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47f00f
mov edx, dword [esp + 0x384]
lea eax, [edi + 4]
push eax
mov eax, dword [esp + 0x18]
push esi
lea ecx, [esp + esi + 0x144]
push ecx
push 1
push edx
call fcn.0047cc50
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47f00f
add esi, esi
cmp dword [esp + 0x5c], eax
je 0x47f044
cmp byte [ebp + 0xc], al
jne 0x47ed12
mov ebp, dword [esp + 0x5c]
mov ecx, dword [esp + 0x384]
lea eax, [edi + 8]
push eax
push ebp
lea eax, [esp + esi + 0x144]
push eax
mov eax, dword [esp + 0x20]
push 0
push ecx
call fcn.0047cc50
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47f00f
lea eax, [edi + 0xc]
push eax
mov eax, dword [esp + 0x388]
add esi, ebp
push ebp
lea edx, [esp + esi + 0x144]
push edx
push 0
push eax
mov eax, dword [esp + 0x28]
call fcn.0047cc50
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47f00f
add esi, ebp
mov ebp, dword [esp + 0x4c]
test ebp, ebp
jbe 0x47f044
mov edx, dword [edi + 0x10]
push ebp
lea ecx, [esp + esi + 0x140]
push ecx
push edx
call fcn.0040dc50
add esi, ebp
lea eax, [esp + esi + 0x148]
jmp 0x47f036
cmp dword [esp + 0x24], 0
jne 0x47ee8f
push ebx
call fcn.004a87a0
mov ebp, dword [esp + 0x1c]
push ebp
lea edx, [esp + esi + 0x144]
push edx
push ebx
call fcn.004a8f10
push 0x40
lea eax, [esp + 0xbc]
push eax
push ebx
call fcn.004a8f10
push 0x10
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0xbc]
push edx
push ebx
call fcn.004a8fc0
mov edx, dword [esp + 0x3b0]
lea eax, [edi + 8]
push eax
mov eax, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0xcc]
push ecx
push 0
push edx
call fcn.0047cc50
add esp, 0x40
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47f00f
push ebx
call fcn.004a87a0
push ebp
add ebp, esi
lea eax, [esp + ebp + 0x144]
push eax
push ebx
call fcn.004a8f10
push 0x40
lea ecx, [esp + 0x110]
push ecx
push ebx
call fcn.004a8f10
push 0x10
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0xbc]
push eax
push ebx
call fcn.004a8fc0
mov ecx, dword [esp + 0x88]
lea eax, [edi + 0xc]
push eax
mov eax, dword [esp + 0x3b4]
push ecx
lea edx, [esp + 0xcc]
push edx
push 0
push eax
mov eax, dword [esp + 0x54]
call fcn.0047cc50
add esp, 0x40
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47f00f
push ebx
call fcn.004a87a0
push 0x40
lea ecx, [esp + 0xb0]
push ecx
push ebx
call fcn.004a8f10
push 0x10
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0xb0]
push eax
push ebx
call fcn.004a8fc0
mov esi, dword [esp + 0x6c]
mov edx, dword [edi + 0x10]
push esi
lea ecx, [esp + 0xbc]
push ecx
push edx
call fcn.0040dc50
push ebx
call fcn.004a87a0
push 0x40
lea eax, [esp + 0x130]
push eax
push ebx
call fcn.004a8f10
push 0x10
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0xdc]
push edx
push ebx
call fcn.004a8fc0
mov ecx, dword [edi + 0x14]
add esp, 0x4c
push esi
lea eax, [esp + 0x9c]
push eax
push ecx
call fcn.0040dc50
add esp, 0xc
jmp 0x47f044
mov ebp, dword [esp + 0x18]
xor eax, eax
lea edx, [esp + esi + 0x13c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x54]
push edx
lea eax, [esp + 0xac]
mov dword [esp + 0x68], eax
lea ecx, [esp + 0x9c]
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x4c]
push str.client_write_key
push edx
mov dword [esp + 0x5c], ebp
add esi, ebp
mov dword [esp + 0x7c], 0x40
mov dword [esp + 0x50], 0x10
call fcn.004ad290
add esp, 0x14
test eax, eax
jne 0x47f000
mov edx, dword [esp + 0x384]
lea eax, [edi + 8]
push eax
mov eax, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0xa0]
push ecx
push 0
push edx
call fcn.0047cc50
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47f00f
mov edx, dword [esp + 0x54]
push edx
lea eax, [esp + esi + 0x140]
mov dword [esp + 0x48], eax
lea ecx, [esp + 0x9c]
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x4c]
push str.server_write_key
push edx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x50], 0x10
call fcn.004ad290
add esp, 0x14
test eax, eax
jne 0x47f000
mov edx, dword [esp + 0x384]
lea eax, [edi + 0xc]
push eax
mov eax, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0xa0]
push ecx
push 0
push edx
call fcn.0047cc50
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x47f00f
mov ebp, dword [esp + 0x4c]
cmp ebp, eax
je 0x47f044
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x18]
add eax, esi
lea ecx, [esp + eax + 0x13c]
mov eax, dword [esp + 0x54]
push eax
mov dword [esp + 0x3c], ecx
lea edx, [ebp + ebp]
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x44], edx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x4c]
push str.IV_block
push eax
call fcn.004ad290
add esp, 0x14
test eax, eax
je 0x47f021
cmp dword [esp + 0x10], 0
jne 0x47f00f
mov dword [esp + 0x10], 6
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x384]
call fcn.0047ce00
jmp 0x47f04c
mov ecx, dword [esp + 0x38]
mov edx, dword [edi + 0x10]
push ebp
push ecx
push edx
call fcn.0040dc50
mov eax, dword [esp + 0x44]
add eax, ebp
mov ecx, dword [edi + 0x14]
push ebp
push eax
push ecx
call fcn.0040dc50
add esp, 0x18
mov dword [esp + 0x10], 0
push 1
push ebx
call fcn.004a8770
mov edx, dword [esp + 0x38]
push 1
push edx
call fcn.004a8540
mov eax, dword [esp + 0x24]
push eax
call fcn.00483690
add esp, 0x14
mov dword [esp + 0x14], 0
jmp 0x47dc5f
mov ecx, 3
jmp 0x47f094
mov ecx, 4
jmp 0x47f094
mov ecx, 5
jmp 0x47f094
mov ecx, 6
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
test eax, eax
je 0x47f0a5
cmp dword [edx + 8], 0x18
je 0x47f0b2
mov dword [esp + 0x10], 0x71
jmp 0x47dc5f
cmp dword [esp + 0x10], 0
jne 0x47dc5f
mov edx, dword [esp + 0x14]
push edx
push ebp
push eax
push ecx
call fcn.004ace10
add esp, 0x10
mov dword [esp + 0x10], eax
jmp 0x47dc5f
mov edi, dword [esp + 0x14]
test edi, edi
je 0x47f137
push edi
call fcn.00482f20
mov ecx, dword [esp + 0x388]
push ecx
mov dword [eax + 0x38], 1
call fcn.00482e50
mov esi, eax
add esp, 8
test esi, esi
jne 0x47f111
push edi
call fcn.00483690
add esp, 4
mov eax, 2
jmp 0x47f13b
push esi
push edi
call fcn.00458ec0
push esi
mov dword [esp + 0x1c], eax
call fcn.00484200
mov edx, dword [edi + 0xc]
mov eax, dword [esp + 0xa0]
push edi
mov dword [eax], edx
call fcn.00483690
add esp, 0x10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x37c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00409b58
add esp, 0x370
ret