// File: /workspace/github_c_makefile_star2_O0/antirez[P]stonky/stonky.c
// Function: botHandleInfoRequest
void botHandleInfoRequest(botRequest *br, sds symbol) {
    ydata *yd = getYahooData(YDATA_INFO,symbol,NULL,NULL,3600);
    sds reply = NULL;
    if (yd == NULL) {
        reply = sdscatprintf(sdsempty(),
            "Stock symbol %s not found.", symbol);
    } else {
        unsigned int maxsum = 500;
        sds summary = yd->summary ? sdsdup(yd->summary) : sdsnew("No summary.");
        if (sdslen(summary) > maxsum) {
            sdsrange(summary,0,maxsum-1);
            sdscat(summary,"...");
        }
        char *exdivdate = yd->exdivdate;
        if (exdivdate == NULL || strlen(exdivdate) == 0)
            exdivdate = "No date for next dividend.";
        reply = sdscatprintf(sdsempty(),
            "*%s* (%s)\n\n"
            "_%s_\n\n"
            "last dividend %% of current price: %.2f%% / year\n"
            "next dividend ex-date: %s\n"
            ,yd->name,
            yd->industry ? yd->industry : "unknown industry",
            summary,
            yd->lastdiv/yd->reg*100*4,
            exdivdate);
        sdsfree(summary);
    }
    freeYahooData(yd);
    botSendMessage(br->target,reply,0);
    sdsfree(reply);
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq 0x48(%rsp), %rsi
movl $0x2, %edi
xorl %eax, %eax
movl %eax, %ecx
movl $0xe10, %r8d            # imm = 0xE10
movq %rcx, %rdx
callq 0xd200
movq %rax, 0x40(%rsp)
movq $0x0, 0x38(%rsp)
cmpq $0x0, 0x40(%rsp)
jne 0xf8c5
callq 0x8610
movq %rax, %rdi
movq 0x48(%rsp), %rdx
leaq 0x6988(%rip), %rsi      # 0x1623c
movb $0x0, %al
callq 0x98c0
movq %rax, 0x38(%rsp)
jmp 0xfa33
movl $0x1f4, 0x34(%rsp)      # imm = 0x1F4
movq 0x40(%rsp), %rax
cmpq $0x0, 0xc8(%rax)
je 0xf8f4
movq 0x40(%rsp), %rax
movq 0xc8(%rax), %rdi
callq 0x8680
movq %rax, 0x18(%rsp)
jmp 0xf905
leaq 0x695c(%rip), %rdi      # 0x16257
callq 0x8630
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
callq 0xfa70
movl 0x34(%rsp), %ecx
cmpq %rcx, %rax
jbe 0xf94c
movq 0x28(%rsp), %rdi
movl 0x34(%rsp), %eax
subl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
xorl %eax, %eax
movl %eax, %esi
callq 0xa2b0
movq 0x28(%rsp), %rdi
leaq 0x73b5(%rip), %rsi      # 0x16cfc
callq 0x9350
movq 0x40(%rsp), %rax
movq 0xf0(%rax), %rax
movq %rax, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0xf975
movq 0x20(%rsp), %rdi
callq 0x20e0
cmpq $0x0, %rax
jne 0xf981
leaq 0x68e7(%rip), %rax      # 0x16263
movq %rax, 0x20(%rsp)
callq 0x8610
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %rax
cmpq $0x0, 0xd8(%rax)
je 0xf9ba
movq 0x40(%rsp), %rax
movq 0xd8(%rax), %rax
movq %rax, (%rsp)
jmp 0xf9c7
leaq 0x691a(%rip), %rax      # 0x162db
movq %rax, (%rsp)
jmp 0xf9c7
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %rdi
movq (%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x40(%rsp), %rax
movsd 0xe8(%rax), %xmm0
movq 0x40(%rsp), %rax
movss 0x20(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
divsd %xmm1, %xmm0
movsd 0x5b7f(%rip), %xmm1     # 0x15580
mulsd %xmm1, %xmm0
movsd 0x5b83(%rip), %xmm1     # 0x15590
mulsd %xmm1, %xmm0
movq 0x20(%rsp), %r9
leaq 0x6861(%rip), %rsi      # 0x1627e
movb $0x1, %al
callq 0x98c0
movq %rax, 0x38(%rsp)
movq 0x28(%rsp), %rdi
callq 0x8750
movq 0x40(%rsp), %rdi
callq 0xd130
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x38(%rsp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0xdd70
movq 0x38(%rsp), %rdi
callq 0x8750
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)